powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Execute Using c массивом на вход
2 сообщений из 2, страница 1 из 1
Execute Using c массивом на вход
    #39947955
Nimua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Подскажите можно сделать динамический sql с массивом на вход, хотелось бы использовать параметры через USING
так как массив стоковый и хотелось бы избежать варианта с SQL injections, которые в теории возможны, если я буду собирать всю команду конкатенацией.
Спасибо!

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE OR REPLACE FUNCTION public.test(
	p_key 	VARCHAR(128)[] DEFAULT NULL, 
	p_key_op VARCHAR(10) DEFAULT NULL)
RETURNS SETOF storage
 LANGUAGE plpgsql
 AS $function$ 
BEGIN	
	EXECUTE 'SELECT * from storage 
	               WHERE key IN (select vl from unnest($1) as vl);'
        USING p_key;	
END;
$function$
;
...
Рейтинг: 0 / 0
Execute Using c массивом на вход
    #39948072
Nimua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, все работает просто забыла добавить RETURN Query...

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE OR REPLACE FUNCTION public.test(
	p_key 	VARCHAR(128)[] DEFAULT NULL, 
	p_key_op VARCHAR(10) DEFAULT NULL)
RETURNS SETOF storage
 LANGUAGE plpgsql
 AS $function$ 
BEGIN	
        return query
	EXECUTE 'SELECT * from storage 
	               WHERE key IN (select vl from unnest($1) as vl);'
        USING p_key;	
END;
$function$
;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Execute Using c массивом на вход
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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