0

私は次のように定義された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 
4

1 に答える 1

1

クエリのコードを含めます。

これには、PLSQLStoredFunctionCall(@NamedPLSQLStoredFunctionQuery)を使用する必要があります。また、PLSQLTABLEタイプをVARRAYタイプとミラーリングする必要があります。

http://wiki.eclipse.org/EclipseLink/Examples/JPA/PLSQLStoredFunctionを参照して ください。

于 2011-11-15T19:39:07.870 に答える