oracle报错无效列类型,jooq oracle存储过程与ARRAY,无效列类型:1111
我想在Oracle中使用JOOQ調用存儲過程。存儲過程的某些輸入和輸出參數是自定義類型。jooq oracle存儲過程與ARRAY,無效列類型:1111
其中之一的定義是:
CREATE OR REPLACE TYPE "TAB_VARCHAR2_500" is table of varchar2(500);
我以這種方式創造oracle.sql.ARRAY類型:
ArrayDescriptor ard=ArrayDescriptor("TAB_VARCHAR2_500",connection);
//this is my object of the stores procedure, generated by jooq
aimws.setPDataDesc(new oracle.sql.ARRAY(ard,connection,lineData.toArray()));
aimws.execute(jooq.configuration());
但是,當我執行,我得到這個(甚至如果我將值設置為空):
SQL state [99999]; error code [17004]; Invalid column type: 1111; nested exception is java.sql.SQLException: Invalid column type: 1111
在由JOOQ為該存儲過程生成的java類中,類型為
public static final Parameter P_DATA_DESC = createParameter("P_DATA_DESC", org.jooq.impl.DefaultDataType.getDefaultDataType("TABLE"), false);
我使用Spring應用程序部署在JBoss的
什么,我做錯了一個EAR項目?我有什么樣的對象在java中創建?
+0
應該為'TAB_VARCHAR2_500'生成一個類。您不需要摔跤ojdbc API,比如'ArrayDescriptor'和'ARRAY'。你是否可能(意外地)從源代碼生成中排除該類?這可以通過''發生,或者如果表類型與表中的模式不同,并且您沒有包含兩個模式。 –
+0
嗨盧卡斯,感謝您的及時答復。我正在使用來生成我將要使用的內容。現在我有一個關于該UDT定義的記錄類。 –
+0
嗨盧卡斯,感謝您的及時答復。我使用來生成僅用于我要使用的類。現在我為整個模式生成Java類,并且為該特定類型看到一個“記錄”類,但不是“表”類。不知道我必須發送什么java對象。我有一個ArrayList 中的數據。 –
總結
以上是生活随笔為你收集整理的oracle报错无效列类型,jooq oracle存储过程与ARRAY,无效列类型:1111的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php多维数组遍历创建表格,php实现遍
- 下一篇: oracle 12c chad,ORAC