ppjava2009
作者ppjava2009·2012-10-11 00:28
系统工程师·用友汽车信息科技(上海)有限公司

DB2例程调用其它存储过程一例

字数 965阅读 1182评论 0赞 0
存储过程或函数调用存储过程的实例:
DROP TABLE proc_log@
CREATE TABLE proc_log(detail VARCHAR(3000))@

DROP PROCEDURE proc_a@
CREATE PROCEDURE proc_a(v_a INTEGER,v_b INTEGER,OUT v_c INTEGER)
SPECIFIC proc_a
LANGUAGE SQL
BEGIN  
  INSERT INTO proc_log(detail) VALUES('执行存储过程proc_a');
  SET v_c=v_a+v_b;
  INSERT INTO proc_log(detail) VALUES('传入参数a='||TRIM(CHAR(v_a))||',b='||TRIM(CHAR(v_b))||',执行结果c='||TRIM(CHAR(v_c)));
END@

DROP PROCEDURE proc_b@
CREATE PROCEDURE proc_b()
SPECIFIC proc_b
LANGUAGE SQL
BEGIN
  DECLARE v_a INTEGER;
  DECLARE v_b INTEGER;
  DECLARE v_c INTEGER;
  DECLARE v_sql VARCHAR(100);
  DECLARE s STATEMENT; 
  
  SET (v_a,v_b)=(10,20);
  SET v_sql='CALL proc_a(?,?,?)';
  
  INSERT INTO proc_log(detail) VALUES('执行存储过程proc_b');
  PREPARE s FROM v_sql;
  EXECUTE s INTO v_c USING v_a,v_b;
  INSERT INTO proc_log(detail) VALUES('end');  
END@

CALL proc_b()@
SELECT * FROM proc_log WITH UR@

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广