在一个主过程中包装过程调用

时间:2018-12-27 20:05:44

标签: sql stored-procedures db2

我有四个工作的存储过程(DB2),每个存储过程都接受自己的参数,但是其中很多参数都是相同的。

我正在尝试创建一个更大的包装程序,该程序基本上只会按顺序调用每个包装程序。包装程序大约有10个外部值作为其自身的参数。

在主体中,我将调用所有4个子参数,在这里,我将混合使用外部参数和从第一次调用派生的主要ID参数。

如何使用外部参数以及第一次调用中捕获的/派生的参数正确包装这四个过程调用?

参数:

FIRST_NAME
LAST_NAME
PROFILE_IMAGE
CODE
START_DATE
EXPIRE_DATE
PRIORITY
CUST_NUMBER
CONTACT_TYPE
CONTACT_VALUE


CALL FIRST_PROC(FIRST_NAME,LAST_NAME,PROFILE_IMAGE)
    --This returns ```FIRST_PROC_ID```

CALL SECOND_PROC(FIRST_PROC_ID, CODE,START_DATE,EXPIRE_DATE,PRIORITY)

CALL THIRD_PROC(FIRST_PROC_ID,CODE,CUST_NUMBER,START_DATE,EXPIRE_DATE,PRIORITY)

CALL FOURTH_PROC(FIRST_PROC_ID,CONTACT_TYPE,CONTACT_VALUE,START_DATE,EXPIRE_DATE)

1 个答案:

答案 0 :(得分:2)

使用GET DIAGNOSTICS语句。

--#SET TERMINATOR @

SET SERVEROUTPUT ON@

CREATE OR REPLACE PROCEDURE TEST1(P_FIRST_PROC_ID INT)
BEGIN
  RETURN P_FIRST_PROC_ID;
END@

BEGIN
  DECLARE V_RC INT;
  CALL TEST1(10);
  GET DIAGNOSTICS V_RC = DB2_RETURN_STATUS;
  CALL DBMS_OUTPUT.PUT_LINE('Return Status: '||V_RC);
END@