powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / ERROR prepare AS( with AS ... update)
5 сообщений из 5, страница 1 из 1
ERROR prepare AS( with AS ... update)
    #39501941
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неожиданно наткнулся на ошибку

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
PREPARE FOO(int,int) AS (
WITH a AS (SELECT ..........
)
,b AS (SELECT ......
,LATERAL ...
FROM a
)
,F AS (......)
UPDATE mytable 
SET myfld = ...
FROM F 
WHERE ....
);
-------
ERROR:  syntax error at or near "UPDATE"
LINE 79: UPDATE 


если написать select * from F -- синтакс будет верным.
перенёс целиком в LANGUAGE SQL FUNCTION -- и никаких ошибок.

т.е. я чего то не знаю про prepare ограничения ? кто ткнет в доку ?

"PostgreSQL 9.4.10 on amd64-portbld-freebsd10.3, compiled by FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512, 64-bit"
...
Рейтинг: 0 / 0
ERROR prepare AS( with AS ... update)
    #39501954
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

Скобочки лишние. Они применимы к селекту, выражая подзапрос, а не к update.
...
Рейтинг: 0 / 0
ERROR prepare AS( with AS ... update)
    #39502005
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.qwwq,

Скобочки лишние. Они применимы к селекту, выражая подзапрос, а не к update.
нет.
ф--я (language SQL) с тем же текстом работает
а препаред не проходит проверку синтакса

убил с час времени, разбил тыковку апстену -- нипонил.

могу конечно полный г--код выложить, но смысла не вижу. (там галимый eav, мать его за ногу, портянки на А1, не меньше)
...
Рейтинг: 0 / 0
ERROR prepare AS( with AS ... update)
    #39502034
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

Prepare тут роли не играет. Оператор select поддерживает бытие в скобочках, для выделения уровня сортировки, когда он часть union-блока. В отсутствие юнионов скобочки не стали запрещать.
Код: sql
1.
2.
-- prepare as
(select * from t); -- ок

update не может быть частью юнионов и для него скобочки не предусмотрены.
Код: sql
1.
2.
-- prepare as
(update t set a=b); -- еггог


В sql-функции (далее домыслы) скобки могут сокращаться как незначимые на этапе подстановки параметров до фактического парса самого запроса.

В общем, убери лишние скобки вокруг стейтмента после prepare as.
...
Рейтинг: 0 / 0
ERROR prepare AS( with AS ... update)
    #39502050
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.,

снкс, фурынкен

а я то уж так напривык к скобиям после препарок, а зря
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / ERROR prepare AS( with AS ... update)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]