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时是否存在
答案 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代码。