Кто-нибудь знает, возможно ли вернуть ассоциативный массив как результат функции 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 происходит из того же исходного типа Oracle, что и переменная v_CompParams, между ними не будет проблем с приведением.Любая помощь очень ценится.
С уважением
Пол Дж.