Postgresql -CREATE FUNCTION

时间:2016-07-07 06:41:11

标签: plpgsql postgresql-9.4

CREATE OR REPLACE FUNCTION  udf_get_emp_name(p_empcode integer)
returns text
AS 
$BODY$

    DECLARE l_emp_name  TEXT;
   select emp_name into l_emp_name from employee  where empcode = p_empcode;

   return l_emp_name;
END;

$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

此函数成功创建,postgresql不检查表是否存在或列是否存在。是否有任何选项可以检查列名和表名是否正确并且在CREATE或REPLACE FUNCTION时是否存在

1 个答案:

答案 0 :(得分:4)

你不需要PL / pgSQL。如果你使用普通的sql函数,Postgres 检查表的存在和嵌入式SQL语句的语法:

CREATE OR REPLACE FUNCTION  udf_get_emp_name(p_empcode integer)
returns text
AS 
$BODY$
   select emp_name 
   from employee 
   where empcode = p_empcode;
$BODY$
  LANGUAGE sql VOLATILE
  COST 100;

如果您简化了示例并且确实需要PL / pgSQL,那么您可以使用扩展名PL/pgSQL Check(或PL/pgSQL Lint)来验证PL / pgSQL函数中的SQL代码。