有人知道是否有可能返回一个关联数组作为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.