Как передать функцию unnest в качестве параметра ввода функции в PostgreSQL - PullRequest
0 голосов
/ 10 сентября 2018
CREATE OR REPLACE FUNCTION get_emp()
  RETURNS void
  LANGUAGE sql
AS $function$
  select e.emp_id, e.empname, e.sal
  from unnest(array[1,2], array['A','B'],array[1000,5000]) as e(emp_id, mpname, sal);
$function$;

Как мы можем передать значения emp_id, empname, sal через параметры функции?

1 Ответ

0 голосов
/ 10 сентября 2018

Если вы хотите указать, какие столбцы вы хотите выбрать из таблицы, вам придется использовать динамический SQL .

Обязательно используйте функцию format, как в

EXECUTE format('SELECT %I, %I FROM ...', p_col1, p_col2) INTO v_result;

Это защитит вас от внедрения SQL.

Если вам нужно передать значения emp_id, mpname и sal, которые вы используете в предложении FROM, вы можете использовать статический SQL. Просто замените array[1,2] на имя параметра типа integer[].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...