0

请在这件事下帮助我,

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

  2. 我们能否从 Oracle 存储过程中发送包的 as out 参数?

请帮我。

谢谢你,施莱拉姆

4

1 回答 1

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
于 2013-07-08T08:21:18.700 回答