我有一个oracle函数定义为:
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硬编码为null,但是如果我尝试将BigDecimals列表传递给它,则查询工作正常,我收到错误,
Internal Exception: java.sql.SQLException: Invalid column type
Error Code: 17004
答案 0 :(得分:1)
包含您的查询代码。
您需要使用PLSQLStoredFunctionCall(@NamedPLSQLStoredFunctionQuery)。您还需要使用VARRAY类型镜像PLSQL TABLE类型。
请参阅, http://wiki.eclipse.org/EclipseLink/Examples/JPA/PLSQLStoredFunction