我有一個存儲過程,需要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