2012-01-26 3 views
-1

я имею следующие структуры процедур: внутри упаковки:Вызов процедуры внутри процедуры

PROCEDURE proc_All 
(
    start IN date := null, 
    end IN date := null, 
    cursor1 OUT sys_refcursor, 
    cursor1 OUT sys_refcursor, 
    cursor1 OUT sys_refcursor 
); 

PROCEDURE proc_1 
(
    start1 IN date := null, 
    end1 IN date := null, 
    cursor1_1 OUT sys_refcursor, 

); 
PROCEDURE proc_3 
(
    start2 IN date := null, 
    end2 IN date := null, 
    cursor1_2 OUT sys_refcursor, 

); 
PROCEDURE proc_3 
(
    start3 IN date := null, 
    end3 IN date := null, 
    cursor1_3 OUT sys_refcursor, 

); 

Теперь мое требование является то, что я хочу первую процедура proc_All назвать все три следующую процедуру, так как я хочу proc_All называться по программе. Как я могу передать переменные процедуры при вызове внутри другой процедуры (погоду они находятся в или OUT типа)

может кто-нибудь, пожалуйста, помогите .. Thanx заранее

ответ

2

Это должно работать (хотя я не уверен, что вы разрешено использовать ключевое слово «конец» в качестве имени параметра):

PROCEDURE proc_All 
(
    start IN date := null, 
    end IN date := null, 
    cursor1 OUT sys_refcursor, 
    cursor1 OUT sys_refcursor, 
    cursor1 OUT sys_refcursor 
) 
IS 
BEGIN 

    proc_1 
    (
    start1 => start, 
    end1 => end, 
    cursor1_1 => cursor1 
); 

    proc_2 
    (
    start2 => start, 
    end2 => end, 
    cursor1_2 => cursor2 
); 

    proc_3 
    (
    start3 => start, 
    end3 => end, 
    cursor1_3 => cursor3 
); 

END; 
+0

thanx для ответа .. его работа. но я не понял, что начальные и конечные ключевые слова работают – Pramod

+0

выглядит как l_start_date (или) i_start_date должно быть довольно разумным на основе типа данных. –

Смежные вопросы