小编Pau*_*son的帖子

从函数返回Oracle关联数组

有人知道是否有可能返回一个关联数组作为Oracle函数的结果,如果有,你有没有任何例子?

我有一个Oracle包,其中包含一个关联数组声明,如下所示:

TYPE EVENTPARAM IS TABLE OF NUMBER
    INDEX BY BINARY_INTEGER;  
Run Code Online (Sandbox Code Playgroud)

然后将其用于包外的存储过程,如下所示:

v_CompParams areva_interface.eventparam;
Run Code Online (Sandbox Code Playgroud)

目的是在变量v_CompParams中存储一个关联的字符串数组,从另一个包中的Parse函数返回.其定义如下:

PACKAGE STRING_MANIP  
IS 

    TYPE a_array IS TABLE OF NUMBER 
        INDEX BY BINARY_INTEGER; 

    FUNCTION Parse (v_string VARCHAR2, v_delim VARCHAR2) RETURN a_array; 
    FUNCTION RowCount(colln IN a_array) RETURN NUMBER;

END;
Run Code Online (Sandbox Code Playgroud)

实现此目的的代码是:

v_CompParams := STRING_MANIP.PARSE(v_CompID,v_Delim);  
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用,我得到错误'PLS-00382:表达式是错误的类型'.我愚蠢地假设,因为a_array来自与变量v_CompParams相同的源Oracle类型,所以它们之间没有问题.任何帮助非常感谢.

亲切的问候

保罗J.

oracle plsql associative-array parameter-passing

2
推荐指数
1
解决办法
3587
查看次数