PG SQL-自定义存储过程

1.无参存储过程:

CREATE OR REPLACE FUNCTION funName()
  RETURNS "pg_catalog"."void" AS $BODY$
DECLARE
	pro1 type;-- pro1为自定义变量名,type为变量类型,可以是integer,varchar,record。
	···
BEGIN
	pro1 :=XXX;-- 在存储过程中给变量赋值,不要直接等于,格式是冒号+等号,即“:=”
	-- To Do Something...
	
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100

2.有参存储过程:

CREATE OR REPLACE FUNCTION funName(column1 int4,column2 varchar, column3 _int4,column4 _varchar)
  RETURNS "pg_catalog"."void" AS $BODY$
DECLARE
	pro1 type;-- pro1为自定义变量名,type为变量类型,可以是integer,varchar,record。
	···
BEGIN
	pro1 :=XXX;-- 在存储过程中给变量赋值,不要直接等于,格式是冒号+等号,即“:=”
	-- To Do Something...
	
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100

入参可以是int4,varchar,也可以传数组类型参数,如:_int4(整数数组),_varchar(字符数组);

3.在存储过程中处理异常:

CREATE OR REPLACE FUNCTION funName()
  RETURNS "pg_catalog"."void" AS $BODY$
DECLARE
	pro1 type;-- pro1为自定义变量名,type为变量类型,可以是integer,varchar,record。
	···
BEGIN
	pro1 :=XXX;-- 在存储过程中给变量赋值,不要直接等于,格式是冒号+等号,即“:=”
	-- To Do Something...

EXCEPTION
	WHEN others THEN
	-- To Do Something...
	RAISE EXCEPTION '(%)', sqlerrm; -- 打印错误信息。sqlerrm是一个可以直接调用的变量,是异常信息;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐