2
在Oracle中,我可以使用以下命令:如何在結果集中調用java中的SQL Server存儲過程,並輸入輸出參數?
String query = "{ ? = call get_config_func(?, ?) }";
try
{
CallableStatement cs = con.prepareCall(query);
cs.registerOutParameter(1, OracleTypes.CURSOR);
cs.setInt(2, i);
cs.registerOutParameter(3, java.sql.types.INTEGER);
cs.execute();
ResultSet results = ((OracleCallableStatement)cs).getCursor (1);
String val = cs.getString(3);
if(results != null)
{
while(results.next())
{
.....
但是我堅持與參考到Oracle不會使用SQL Server。
我試過如下:
String query = "{ call uspGetLastLocation(?, ? }";
try
{
cs = con.prepareCall(query);
cs.setLong(1, id);
cs.registerOutParameter(2, java.sql.Types.VARCHAR);
rs = cs.executeQuery();
while(rs.next())
{
.....
但我得到以下錯誤
附近有語法錯誤 '{'。
我一直在使用PreparedStatement
代替CallableStatement
看到的例子,並更改查詢
String query = "EXEC uspGetLastLocation ?, ?";
但我無法弄清楚如何處理輸出參數。
任何建議或指向參考?
謝謝。
我注意到,但現在我得到的錯誤「聲明沒有返回結果集」。 – Burferd
關於定義輸出參數以及我如何嘗試獲取結果集的語法的其餘部分? – Burferd
對於Oracle和SQL Server,JDBC API都保持不變。我首先測試你的過程並檢查它是否返回任何結果。我相信你的代碼執行得很好,並且不會爲你傳遞的參數返回任何結果。 – user47900