2016-04-26 63 views
0

我有長的SQL查詢字符的應用程序出現了錯誤,並在日誌Oracle SQL中的SQL查詢字符串長度是否可以導致異常?

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908 
║ ) at java.lang.Thread.run(Thread.java:662) Caused by: 
║ com.myapp.DiagException: Execution of the 
║ SQL query failed. SQL query was: 'null' at 
║ com.myapp.plsql.PLSQLReportProcessor 
║ .displaySQLResults(PLSQLReportProcessor.java:622) 

║ com.myapp.engine.DiagRunnable.run(DiagRunnable.java:68) 
║ at  java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442) 
║ at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at 
║ java.util.concurrent.FutureTask.run(FutureTask.java:139) ... 2 more Caused 
║ by: java.sql.SQLException: Null SQL statement passed to prepareStatement at 
║ weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:548) at 
║ com.myapp.engine.impl.report.plsql.PLSQLReportProcessor 
║ .displaySQLResults(PLSQLReportProcessor.java:583) ... 17 more 
║ Fix Information: An unexpected error was encountered. Please contact your 
║ system administrator. 

以下異常是否有任何限制的SQL查詢的長度可能會造成這個錯誤或者它可能是錯誤數據的結果,如其中一列爲空?

我也能夠從SQL開發人員運行這個長的SQL查詢。只有在作爲參數傳遞時通過應用程序執行時纔會出錯。

回答

1

根據Ask Tom

在PLSQL例如,執行快速,因爲PLSQL本身在一個varchar變量被限制 到32K被限制到32K。但是,您可以使用dbms_sql來分析一個ARRAY,該ARRAY的大小可能是巨大的 - 兆字節。

+0

此sql查詢中的字符數是3261個字符。它似乎沒有超過32k的限制。我錯過了什麼嗎? – Pha3drus

+0

@ Pha3drus根據文檔,你是對的。可悲的是我不能說出是什麼原因導致了你得到的錯誤,但這可能不是查詢的長度。 – Szeki

相關問題