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)
如果您希望能够指定要从表中选择的列,则必须使用dynamic 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[]
的参数名称即可。