Оборачивание вызовов процедур в одну основную процедуру - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть четыре рабочие хранимые процедуры (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 голосов
/ 28 декабря 2018

Используйте оператор 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@
...