以下のようなストアド プロシージャを Java で実行しようとしています。
CREATE PROCEDURE [dbo].[MyProc]
(
@input1 varchar(20),
@input2 varchar(20),
@responsecode varchar(10) output
)
AS
//Implementation
SELECT @a,@b,@c,@d;
SELECT @responsecode;
Java コードは次のようになります。
callableStatement = conn.prepareCall("{call MyProc("2","2"))}");
callableStatement.registerOutParameter(3, Types.VARCHAR);
callableStatement.registerOutParameter(4,Types.JAVA_OBJECT);
ご覧のとおり、ストアド プロシージャから 2 つの出力パラメータを取得しようとしています。
インデックス 3 で応答コードを取得できますが、 @a,@b,@c,@d はインデックス 4 で resulset として取得する必要があります (間違っている可能性があります)。
このような種類のストアド プロシージャの結果セットを取得する方法を教えてください。
このストアド プロシージャを Microsoft SQL Server Managment Studio で実行すると、2 種類の応答が表示されます。1 つは結果セット、もう 1 つは以下の ResponseCode です。