标签:调用 cur1 Max 笔记 st SET Sql db2 DECLARE
调用存储过程
--出参 ?出参名$类型$out,后面跟入参 CALL 存储过程名(?ret$integer$out,?msg$varchar$out,'XXX',1,NULL);
创建存储过程
create or replace procedure 存储过程名( OUT o_ret int, OUT o_info VARCHAR(100), IN i_Param1 VARCHAR(100), IN i_Param2 int, IN i_Param3 VARCHAR(100) ) specific 存储过程名 RESULT SETS 2 --返回结果集数量 LANGUAGE SQL BEGIN DECLARE SQLCODE INT DEFAULT 0; DECLARE SQLSTATE CHAR(5) DEFAULT '00000'; DECLARE v_sqlcode INT DEFAULT 0; DECLARE v_sqlstate CHAR(5) DEFAULT '00000'; DECLARE v_Max int; DECLARE v_Min int; DECLARE v_Sql_Max varchar(1000); DECLARE v_st_Max statement; DECLARE v_cur1_Max CURSOR WITH RETURN FOR v_st_Max; DECLARE v_Sql varchar(1000); DECLARE v_st statement; DECLARE v_cur1 CURSOR WITH RETURN FOR v_st; SET v_Min = i_Param2; SET v_Sql_Max = 'select max(id) from tableName'; prepare v_st_Max from v_Sql_Max; OPEN v_cur1_Max; FETCH v_cur1_Max INTO v_Max; CLOSE v_cur1_Max; set v_sql='select * from tableName where id < '||v_Max ||' AND '|| ' RN > '||v_Min||' WITH ur'; PREPARE v_st FROM v_Sql; OPEN v_cur1; BEGIN DECLARE cur2 CURSOR WITH RETURN TO caller FOR select * from tableName2 where aaa = i_Param2; OPEN cur2; END; DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN SET v_sqlcode = SQLCODE,v_sqlstate = SQLSTATE; SET o_ret = -99,o_info = '在['||coalesce(o_info,'未知错误')||']处发生异常 SQLCode:'||char(v_sqlcode)||'SQLState:'||char(v_sqlstate); END; SET o_ret = 99, o_info = ''; END;
标签:调用,cur1,Max,笔记,st,SET,Sql,db2,DECLARE 来源: https://www.cnblogs.com/luyuting/p/16572463.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。