com.microsoft.sqlserver.jdbc.SQLServerException:' @ P0'附近的语法不正确

时间:2013-06-24 06:04:03

标签: java sql-server sql-server-2008 jdbc

我有一个SQL server 2008程序,它返回一个参数,我从java调用它。我的代码如下:

存储过程代码是

Create PROCEDURE countInfected @infected int out
AS
Select @infected = COUNT(*) from userInfo
where userID NOT IN (Select userID from deletedInfo);

Java Calling Code

CallableStatement infected = null;
infected = con.prepareCall("call countInfected(?)");
infected.registerOutParameter(1, java.sql.Types.INTEGER);
infected.execute();
System.out.println("Infected"+ infected.getInt(1));

但是infected.execute();正在生成以下错误

  

com.microsoft.sqlserver.jdbc.SQLServerException:'@ P0'附近的语法不正确

请指导我问题在哪里

1 个答案:

答案 0 :(得分:10)

根据@GregHNZ提供的this link的建议,SQL Server需要在调用周围使用一组花括号。

代码中的行如下所示:

infected = con.prepareCall("{ call countInfected(?) }");