Передача определенного пользователем типа TABLE в хранимую функцию Oracle - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть функция оракула, определенная как:

FUNCTION SELECTINBOX (FA_FROMUSERLIKE IN PKGSMSTYPES.MAXVARCHAR2_T DEFAULT NULL , 
        FA_INBOXOWNER IN PKGSMSTYPES.MAXVARCHAR2_T, 
        FA_A_URGENCY IN G_INTARRAY_TBL DEFAULT NULL , 
        FA_PAGENO IN NUMBER DEFAULT 1
) RETURN G_SMSNOTES_TBL; 

, где G_INTARRAY_TBL определяется как,

create or replace
TYPE G_INTARRAY_TBL AS TABLE OF NUMBER; 

Я строю запрос, используя eclipselink. Запрос работает нормально, если я жестко кодирую G_INTARRAY_TBL как ноль в строке запроса, но если я пытаюсь передать ему список BigDecimals, я получаю сообщение об ошибке,

Internal Exception: java.sql.SQLException: Invalid column type
Error Code: 17004 

1 Ответ

1 голос
/ 15 ноября 2011

Включите ваш код для вашего запроса.

Для этого вам нужно использовать PLSQLStoredFunctionCall (@NamedPLSQLStoredFunctionQuery).Вам также необходимо отразить тип PLSQL TABLE с типом VARRAY.

См., http://wiki.eclipse.org/EclipseLink/Examples/JPA/PLSQLStoredFunction

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...