Postgresql - 创建函数

Postgresql -CREATE FUNCTION

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 不检查 table 是否存在或列是否存在。是否有任何选项可以检查列名和 table 名称是否正确并且在 CREATE 或 REPLACE FUNCTION

时是否存在

您不需要 PL/pgSQL。如果你使它成为一个普通的 sql 函数,Postgres 检查 table 的存在和嵌入的 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 (or PL/pgSQL Lint) 来验证 PL/pgSQL 函数中的 SQL 代码.