使用Oracle存储过程将多维数组作为out参数发送

时间:2013-07-08 03:50:04

标签: database oracle stored-procedures parameters out

请在这件事情上帮助我,

  1. 我们能够在Oracle存储过程中创建多维数组吗?如果是这样,你能用一个例子来解释吗?

  2. 我们能够从Oracle存储过程发送包作为out参数吗?

  3. 请帮帮我。

    谢谢你, 施拉姆

1 个答案:

答案 0 :(得分: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