Как передать функцию unnest в качестве входного параметра функции в postgresql

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 через параметры функции?

0
0
202
1

Ответы 1

Если вы имеете в виду, что хотите иметь возможность указать, какие столбцы вы хотите выбрать из таблицы, вам придется использовать динамический 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[].

Другие вопросы по теме