有人知道是否有可能返回一个关联数组作为Oracle函数的结果,如果有,你有没有任何例子?
我有一个Oracle包,其中包含一个如下定义的关联数组声明:
TYPE EVENTPARAM IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
然后在包外的存储过程中使用它,如下所示:
v_CompParams areva_interface.eventparam;
目的是在变量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;
实现此目的的代码是:
v_CompParams := STRING_MANIP.PARSE(v_CompID,v_Delim);
不幸的是它不起作用,我收到错误'PLS-00382:表达式类型错误'。我愚蠢地假设,因为a_array来自与变量v_CompParams相同的源Oracle类型,所以它们之间没有问题。任何帮助非常感谢。
亲切的问候
Paul J。
答案 0 :(得分:6)
要成为非常“相同”的类型,必须将v_CompParams定义为:
v_CompParams STRING_MANIP.a_array;