com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set

com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.

今天在按照需求修改代碼的過程中遇到上述問題,具體場景就是:我在使用SQLServer的javaAPI去調用一個存儲過程,但是我不是使用的專門調用存儲過程的CallStatement對象去做輸入出參數,輸出參數的設置,而是直接使用的是Query方法,因爲在我的存儲過程中,雖然有很多跟dataBase進行交互操作(也就是增刪改查)的邏輯,但是我最終只需要返回我所更新的條數。因爲行業原因,我不能貼出code,所以只能抽象描述一下。所以我的整個存儲過程返回的結果集只有一行一列。也就是說結果集中只有一條數據,並且,數據只有一列。
所以,我沒有使用CallStatement對象去做存儲過程的調用,而是直接使用query方法,但是,兩者調用的都是同一個存儲過程,在使用CallSatement對象調用存儲過程時,能夠正常返回,而在使用query方法時,就發生了上述錯誤,萬萬沒想到。查閱一些資料後,瞭解到可能時存儲過程中其他對於數據庫的操作所形成的影響行數的結果對於結果集造成了混亂,從而導致JavaAPI無法正確提取出返回結果。按照網上提示修改存儲過程,加上關閉影響行數的輸出後,能夠正確取值,我還曾經一度懷疑API版本問題。
問題總結輸入對於SQLSERVER的瞭解不夠,還需要繼續深入學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章