2013-07-08 206 views
0

請幫我在這件事上,使用Oracle存儲過程

  1. ,我們才能創造一個Oracle存儲過程多維數組發送多維數組作爲out參數?如果是這樣,你可以解釋一個例子嗎?

  2. 我們能否從Oracle存儲過程發送包作爲輸出參數?

請幫幫我。

謝謝你, 施拉姆

回答

0
/* Package header */ 
CREATE OR REPLACE PACKAGE exmaple_pkg AS 

    TYPE example_rec IS RECORD(col1 NUMBER, col2 NUMBER); 

    TYPE example_ntt IS TABLE OF example_rec; 

    PROCEDURE example_proc(parameter_out OUT example_ntt); 

END exmaple_pkg; 

/* Package body */ 
CREATE OR REPLACE PACKAGE BODY exmaple_pkg AS 

    PROCEDURE example_proc(parameter_out OUT example_ntt) 
    AS 
    BEGIN 
     parameter_out := example_ntt(); 
     parameter_out.EXTEND; 
     parameter_out(1).col1 := 11; 
     parameter_out(1).col2 := 22; 
    END example_proc; 

END exmaple_pkg; 

/* Call the procedure */ 
DECLARE 
    l_variable exmaple_pkg.example_ntt; 
BEGIN 
    exmaple_pkg.example_proc(l_variable); 

    DBMS_OUTPUT.PUT_LINE('col1:' || l_variable(1).col1); 
    DBMS_OUTPUT.PUT_LINE('col2:' || l_variable(1).col2); 
END; 

/* The result */ 
col1:11 
col2:22