powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / запрос не выполняется в EXECUTE
12 сообщений из 12, страница 1 из 1
запрос не выполняется в EXECUTE
    #33870511
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так выполянется

select id,parent_id from nodes where parent_id=uuid_rand();

а так - пишет ошибку:

execute 'select id,parent_id from nodes where parent_id=uuid_rand();';


------------------------------
ERROR: syntax error at or near "'select id,parent_id from nodes where parent_id=uuid_rand();'" at character 9
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33870630
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh
execute 'select id,parent_id from nodes where parent_id=' ||uuid_rand()::text||';';
например сшить строку с подставленным _значением_, а не переменной
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33870646
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321 Winnipuh
execute 'select id,parent_id from nodes where parent_id=' ||uuid_rand()::text||';';
например сшить строку с подставленным _значением_, а не переменной

та же фигня
ERROR: syntax error at or near "'select id,parent_id from nodes where parent_id=uuid_rand();'" at character 9
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33870656
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже так дает ту же ошибку :-((

execute 'select * from nodes;';
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33870710
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhдаже так дает ту же ошибку :-((

execute 'select * from nodes;';сдается, тому окне, где тестируем, видна старая функция. Что например может быть из-за незавершенной транзакции в этом окне.
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33870909
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321 Winnipuhдаже так дает ту же ошибку :-((

execute 'select * from nodes;';сдается, тому окне, где тестируем, видна старая функция. Что например может быть из-за незавершенной транзакции в этом окне.

выделяю то, что внутри и выполняю - выполняется 'select * from nodes;
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33870920
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Name
EXECUTE — execute a prepared statement
Synopsis
EXECUTE plan_name [ (parameter [, ...] ) ]


ты именно это хочешь сделать?
или выполнить динамический sql в plpg/sql процедуре?
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33871014
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_serg
Name
EXECUTE — execute a prepared statement
Synopsis
EXECUTE plan_name [ (parameter [, ...] ) ]


ты именно это хочешь сделать?
или выполнить динамический sql в plpg/sql процедуре?

динамическое утверждение в процедуре.
Это из-за использования временной таблицы. Клинч получается.

CREATE OR REPLACE FUNCTION "public"."getchildren" (var_node_id "public"."uuid") RETURNS SETOF "public"."parent_record" AS
$body$
DECLARE result RECORD;
DECLARE rows_conter integer;
DECLARE query text;
BEGIN

execute 'create temporary
table tst( node_id uuid,
parent_id uuid,
level integer not null default 0
)
on commit drop;';

rows_conter:=0;

query :='insert into tst(node_id,parent_id) select id,parent_id from nodes where parent_id=' || var_node_id;

execute(query);

здесь не получается прилепить к запросу входящий параметр var_node_id.
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33871864
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если вместо (есть сомнения по поводу неявного преобразования типа uuid к varchar, может там специальные функции есть?)
Код: plaintext
1.
query :='insert into tst(node_id,parent_id) select id,parent_id from nodes where parent_id=' || var_node_id;
сделать
Код: plaintext
1.
insert into tst(node_id, parent_id) select id, parent_id from nodes where parent_id = var_node_id;
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33872029
ZemA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh st_serg
Name
EXECUTE — execute a prepared statement
Synopsis
EXECUTE plan_name [ (parameter [, ...] ) ]


ты именно это хочешь сделать?
или выполнить динамический sql в plpg/sql процедуре?

динамическое утверждение в процедуре.
Это из-за использования временной таблицы. Клинч получается.

CREATE OR REPLACE FUNCTION "public"."getchildren" (var_node_id "public"."uuid") RETURNS SETOF "public"."parent_record" AS

..........

query :='insert into tst(node_id,parent_id) select id,parent_id from nodes where parent_id=' || var_node_id;

execute(query); ???

здесь не получается прилепить к запросу входящий параметр var_node_id.


а если вместо execute(query); написать execute query;
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33873093
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_sergа если вместо (есть сомнения по поводу неявного преобразования типа uuid к varchar, может там специальные функции есть?)
Код: plaintext
1.
query :='insert into tst(node_id,parent_id) select id,parent_id from nodes where parent_id=' || var_node_id;
сделать
Код: plaintext
1.
insert into tst(node_id, parent_id) select id, parent_id from nodes where parent_id = var_node_id;


похоже не доделали авторы uuid'а преобразования в и из строки.
...
Рейтинг: 0 / 0
запрос не выполняется в EXECUTE
    #33873103
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_sergа если вместо (есть сомнения по поводу неявного преобразования типа uuid к varchar, может там специальные функции есть?)
Код: plaintext
1.
query :='insert into tst(node_id,parent_id) select id,parent_id from nodes where parent_id=' || var_node_id;
сделать
Код: plaintext
1.
insert into tst(node_id, parent_id) select id, parent_id from nodes where parent_id = var_node_id;


так работает, но проблема в том, что при таком вариант при втором выполнении получаю ошибку из-за временной таблицы
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / запрос не выполняется в EXECUTE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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