1つの入力値と2つの出力パラメーターを受け取り、実行時に値を返すストアドプロシージャがあります
インターネット上で私はCallを使用して参照を見ました
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 '{'"
次に、SQLManagementStudioで生成された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"
また、「OUT」は「=」の前に表示されるため、SQLManagementStudioでも機能しません。
そして、それはどちらの方法でも機能しないので、これは私にアイデアを残します。
助言がありますか?
ありがとうございました!