Sybase の jdbc ドライバーを使用しているときに、多くの挿入ステートメントを含むストアド プロシージャに問題があります。50 ~ 60 回の挿入の後、ストアド プロシージャは実行を停止して戻ります。以下のコードを参照してください。
私は Sybase Anywhere 10 とその jconn2.jar を使用していますが、jconn3.jar も試しました。
ジャバコード:
String sp = "sp_test";
Statement stmt = con.createStatement();
stmt.execute(sp);
stmt.close();
ストアド プロシージャ:
create procedure dba.sp_test()
as
begin
declare @lnCount integer
select @lnCount = 1
while (@lnCount <= 1000 )
begin
insert into tableTest (pk) values (@lnCount)
select @lnCount = @lnCount + 1
end
end
58 挿入後、プロシージャは戻ります。後で tableTest から select count(*) を実行すると、58 のカウントが返されます。スローされる SQLException はありません。挿入の周りに begin/commit トランザクションを配置しようとしましたが、違いはありませんでした。jodbc ドライバーも試してみましたが、問題なく動作しますが、他の問題が発生したため、これを解決策として使用することはできません。