Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Динамическое формирование SQL комманды в ХП / 3 сообщений из 3, страница 1 из 1
04.05.2005, 12:43
    #33047882
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое формирование SQL комманды в ХП
Есть функция
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR REPLACE FUNCTION "public"."del_data" (dt timestamp, al_id text, alh_id text) RETURNS integer AS
$body$
begin
 IF (al_id<>'()') then
   DELETE FROM ma_data WHERE (alias_id in al_id) and (endperiod<dt);
 END IF;

 RETURN  0 ;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
В качестве параметра al_id передается (0).
При выполнении ругается: ERROR: syntax error at or near "$1" at character 41.
Значит ли это, что правильный путь лежит к команде EXECUTE? Или это можно как-то обойти?
...
Рейтинг: 0 / 0
04.05.2005, 13:12
    #33047963
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое формирование SQL комманды в ХП
>Значит ли это, что правильный путь лежит к команде EXECUTE

Значит.

>Или это можно как-то обойти?

можно, через EXECUTE :)
...
Рейтинг: 0 / 0
05.05.2005, 10:43
    #33049783
Funny_Falcon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое формирование SQL комманды в ХП
А что-нибудь, похожее на это не подойдет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR REPLACE FUNCTION del_data (al_id text[]) RETURNS integer AS
$body$
begin
 IF (array_upper(al_id, 1 ) IS NOT NULL) then
   DELETE FROM try_gist2 WHERE (phone = ANY (al_id)) ;
 END IF;

 RETURN  0 ;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE;
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Динамическое формирование SQL комманды в ХП / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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