我有存儲過程,根據任何給定的輸入(任何生物數據,例如血型,名稱,身份證號等等,需要近26個輸入)來搜索人員。存儲過程沒有給出java代碼的準確結果
我正在執行一個存儲過程(SQL服務器)從Java使用Callable Statement
preparecall
方法。以前我有一個問題,即當字符串輸入在其許多輸入參數之一中傳遞時,我的存儲過程沒有給出任何結果(0行結果)。另一方面,當通過任何整數類型參數值時,但當我將jdbc
驅動程序從jdbc:odbc
驅動程序更改爲sqlserver
驅動程序 (driver name=com.microsoft.sqlserver.jdbc.SQLServerDrive
)時,問題得到了解決。
現在我的新問題是,當我的程序procSearch2
,即以16個輸入,運行它給出的結果與jdbc
驅動程序(改變一個)的相同Connection
變量完全正常,但其他程序,其中有27個輸入(procSearch1
)即使通過int
或string
輸入值也未給出任何結果。
它不會給出任何錯誤,它只是返回我0行結果,它應該返回3行結果。
這裏是代碼
CallableStatement stmt=connect.prepareCall("{CALL procSearch1(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
stmt.setInt(1,0);
stmt.setString(2,"");
stmt.setString(3,"");
.
.
.
stmt.setInt(27,0);
ResultSet result=stmt.executeQuery();
if(result!=null)
{
System.out.println(result.getRow());
while(result.next)
{
System.out.println(result.getString("Name"));
}
}
你試過從後端執行第二個過程,看它是否返回任何數據? – user75ponic
是的,我調試每一行,並檢查我的procSearch2給出結果,但procSearch1 doesnot。它根據sp在sql server中運行的時間返回空行,它應該返回3行。 –