PG存储过程示例

--函数创建
CREATE OR REPLACE FUNCTION public.cdp_pro_trunc_lsb_test(v_lsb_name character varying)
  RETURNS text
  LANGUAGE plpgsql
AS $function$
DECLARE
   /*
    * v_lsb_name 临时表的名称
	* 项目模块:
	* 负责人:
	* 时间:
	*/
---清空临时表
  pSql text;
  V_ERR_MSG  text;
  v_log text;
  v_lsb_jgb_name  text;
  v_lsb_date varchar(10); ---YYYY-MM-DD
  v_term varchar(20);
  v_max_auto_date text;
  v_p text;
  isExist boolean;
BEGIN 
-- 插入注释	
    insert into t_tab_log(table_name,tab_hive_date,tab_psql_date,do_date,status,message) 
					values(v_lsb_name,'','',now(),'S','sql语句');
    
	
	
return 'ok';
EXCEPTION
  WHEN OTHERS THEN
    V_ERR_MSG := SQLERRM;
   RAISE exception '(%)',SQLERRM;
    V_ERR_MSG := SQLERRM;
	
	insert into t_tab_log(table_name,tab_hive_date,tab_psql_date,do_date,status,message) 
					values(v_lsb_name,'','',now(),'F',V_ERR_MSG);
return V_ERR_MSG;
END;
$function$
----------------------------------------PG 存储函数调用变量的3种方法----------------------------
CREATE OR REPLACE FUNCTION public.update_student(id integer)
  RETURNS text AS
$BODY$

declare sql_str_run text; 

BEGIN

--method 1
 select 'update student set  remark ='''|| now() ||''' where student.id = '|| $1 into sql_str_run ;
 execute sql_str_run;-- 如果变量本身也是需要需要通过函数或语句的计算来获得,使用method1

 --method 2
 execute 'update student set remark =now() where student.id=$1' using $1; --如果需要拼的变量可以直接获取的,使用method2

 --method 3 
 update student set remark =now() where student.id=$1; --推荐使用
 
 return 'update is ok' ;
end

$BODY$
  LANGUAGE plpgsql VOLATILE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值