Sybaseのjdbcドライバを使用すると、多くの挿入ステートメントを持つストアドプロシージャに問題があります。 50〜60個の挿入後、ストアドプロシージャは実行を停止して戻ります。以下のコードを参照してください。SybaseのストアドプロシージャJDBCドライバの挿入制限
私はSybase Anywhere 10とそのjconn2.jarを使用していますが、jconn3.jarも試しました。
Javaコード:
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ドライバを試してみましたが、うまくいきましたが、私はそれを他の問題があったので解決策として使用できません。 executeUpdateを使用して
私は自分自身をチェックすることはできませんが、 "set nocount on"をprocヘッダーに入れてみてください。 – kolchanov