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 代码.
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 代码.