如何将变量从存储过程传递到另一个存储过程

时间:2018-11-02 13:32:31

标签: plsql

我有一个带有存储日期的变量“ RUN_DATE”的SP_1。我有另一个SP_2,并且在此SP_2中,我希望SP_1运行,前提是且仅当SP_1中的变量的日期在最近15天内。

这怎么可能?

SP_1:

CREATE OR REPLACE PROCEDURE "SP_1"

is

Run_DATE DATE;

BEGIN

Run_DATE := SYSDATE;

// DO STUFF

END;

SP_2:

CREATE OR REPLACE PROCEDURE "SP_2"

is

//DECLARE VARIABLES

BEGIN

// PSEUDO CODE:

// IF Run_DATE FROM SP_1 < SYSDATE -15 DAYS
// CALL SP_1 AND RUN IT
// ELSE DO NOT CALL SP_1

END;

1 个答案:

答案 0 :(得分:0)

您的过程应如下所示-

CREATE OR REPLACE PROCEDURE SP_1(RUN_DATE IN DATE)
IS
    //declare magic variables
BEGIN
    //do magic
END;

CREATE OR REPLACE PROCEDURE SP_2(parameters if any)
IS
    //declare variable for RUN_DATE
BEGIN
    IF RUN_DATE_VARIABLE > SYSDATE - 15 
    THEN
        SP_1(RUN_DATE_VARIABLE);
    END IF;
END

在这种情况下,除非您仅在SP_1中获取RUN_DATE,否则上述方法将起作用

CREATE OR REPLACE PROCEDURE SP_2(parameters if any)
IS
    //declare magic variables
BEGIN
    SP_1(parameters if any);
END;

CREATE OR REPLACE PROCEDURE SP_1(parameters if any)
IS
   //declare RUN_DATE_VARIABLES
BEGIN
   // fetch value of the RUN_DATE variable
   IF RUN_DATE_VARIABLE > SYSDATE - 15
   THEN 
     // do something
   END;
END;