我有一个存储过程,需要1个输入值,2个输出参数,并返回上执行JDBC执行与返回值和输入/输出参数
值在互联网上我使用呼叫看到引用SQL Server存储过程
CallableStatement cstmt = conn.prepareCall("{call ? = spName(?, ?, ?)}");
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.setObject(2, Types.INTEGER);
cstmt.registerOutParameter(3, Types.NVARCHAR);
cstmt.registerOutParameter(4, Types.NVARCHAR);
但是,这给我的错误
"Incorrect syntax near '{'"
于是我决定做这样的SQL Management Studio中生成的SQL代码:
CallableStatement cstmt = conn.prepareCall("exec ? = spName ?, ?, ?");
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.setObject(2, Types.INTEGER);
cstmt.registerOutParameter(3, Types.NVARCHAR);
cstmt.registerOutParameter(4, Types.NVARCHAR);
但是,这给我的错误
"Incorrect syntax near '='"
我想这是因为查询被转化为
"exec @P1 OUT = spName @P2, @P3 OUT, @P4 OUT"
,并没有在SQL Management Studio中工作,或者因为' OUT'请求'='
这让我没有任何想法,因为它无法兼顾。
有什么建议吗?
谢谢!
这应该是'{?=调用spName(?,?,?)}'。 – 2013-02-12 20:00:47