简单的存储过程

CREATE PROCEDURE name( ) 
  DYNAMIC RESULT SETS 1
  LANGUAGE SQL
  NOT DETERMINISTIC
  CALLED ON NULL INPUT
  MODIFIES SQL DATA
  INHERIT SPECIAL REGISTERS
  BEGIN
  ----------------------------定义变量------------------------------
  DECLARE  SQLCODE  INTEGER DEFAULT 0;        --系统SQL出错编码	
  DECLARE  SQLSTATE CHAR(5) DEFAULT '00000';  --系统SQL出错状态码
  DECLARE  strState varchar(40) DEFAULT '';
  DECLARE v_Msg VARCHAR(1000);                --消息  
  ----------------------------变量定义结束--------------------------
  ----------------------------异常处理------------------------------
  /*无数据异常*/
  DECLARE CONTINUE HANDLER FOR NOT FOUND
  		  SET v_Msg='';

  /*SQL异常*/
  DECLARE EXIT HANDLER FOR SQLSTATE '99999'
  BEGIN
 		SET v_Msg=strState||' 错误';
		RESIGNAL SQLSTATE '80000'
		SET MESSAGE_TEXT=v_Msg;
  END;
  
  ----------------------------异常处理结束--------------------------

  ----------------------------处理过程开始--------------------------

  ----------------------------处理过程结束--------------------------	
   SET strState='完成';
	
   set strState ='完成';
	  /*注释*/	  
	  IF (strState <>'完成')
	  THEN
	  	  SIGNAL SQLSTATE '99999';
	  ELSE
		  SET v_Msg='完成';
	  END IF;

  --返回结果
  DECLARE GLOBAL TEMPORARY TABLE SESSION.RET
  (
   		  INFO VARCHAR(300)
   )
  NOT LOGGED WITH REPLACE;
  
  INSERT INTO SESSION.RET VALUES(v_Msg);
  P1:BEGIN
	  DECLARE Rs1 CURSOR WITH RETURN TO CLIENT FOR
	  SELECT * FROM SESSION.RET;
	  OPEN Rs1;
  END P1;
  
END;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值