2013-07-08 163 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