如何在PostgreSQL中传递嵌套函数作为函数输入参数

时间:2018-09-10 06:33:42

标签: sql arrays 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_idempnamesal值?

1 个答案:

答案 0 :(得分:0)

如果您希望能够指定要从表中选择的列,则必须使用dynamic SQL

请务必像使用

一样使用format函数
EXECUTE format('SELECT %I, %I FROM ...', p_col1, p_col2) INTO v_result;

这将使您免受SQL注入的伤害。

如果要传递在emp_id子句中使用的mpnamesalFROM的值,则可以使用静态SQL。只需将array[1,2]替换为类型为integer[]的参数名称即可。