我有存储过程,根据任何给定的输入(任何生物数据,例如血型,名称,身份证号等等,需要近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行。 –