我有在同一行的多個呼叫的查詢(見下面的代碼)類型4驅動程序版本 - 多SQLS(化合物SQL)
Statement對象通過的JdbcTemplate自動創建。
將JDBCTemplate實例化爲新的JDBCTemplate(),並從weblogic服務器池中查找數據源。
A類實現org.springframework.jdbc.core.StatementCallback {
public Object doInStatement(Statement stmt) throws Exception {
String sql = "select * from a where pk = 'test';select * from b where pk = 'test';select * from c where pk = 'test'";
Statement stmt =
ResultSet rs = stmt.executeQuery(sql);
rs = stmt.getResultSet();
...
rs = stmt.getMoreResults();
...
rs = stmt.getMoreResults();
...
}
使用IBM的Type 2驅動程序,上述工作完全正常。我們不得不將驅動程序更改爲Oracle的Type 4 JDBC驅動程序,當我們這樣做時,上面的情況就出現了。它不工作了,我得到的錯誤如下:
[DAO.exec] ERROR: 值java.sql.SQLException:[貓頭鷹] [DB2 JDBC驅動程序] [DB2]非法符號 選擇*從pk;有效的符號是開頭的語句
有誰知道爲什麼類型4驅動程序不支持上述?在聲明中是否需要使用不同的分隔符,用不同的方法使其工作?
注:該代碼在IBM Type 2 JDBC驅動程序中沒有任何問題,但在切換到Oracle的Type 4驅動程序時失敗。
我們使用weblogic作爲應用程序服務器和DB2數據庫。
錯誤信息在你的問題似乎缺少,您可以編輯您的文章,將其添加在JDBC規範總是談論「一個查詢」? –
'ResultSet'沒有'getMoreResults'方法,'Statement'沒有。 – Glenn
謝謝Will和Glenn。請參閱最新的問題。 – user1583261