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