Java 带JDBC驱动程序的Sybase存储过程插入限制

Java 带JDBC驱动程序的Sybase存储过程插入限制,java,sql,jdbc,sqlanywhere,Java,Sql,Jdbc,Sqlanywhere,我在使用Sybase的jdbc驱动程序时遇到了存储过程中有很多insert语句的问题。插入50-60次后,存储过程停止执行并返回。请参阅下面的代码 我正在使用Sybase Anywhere 10及其jconn2.jar,但也尝试了jconn3.jar java代码: String sp = "sp_test"; Statement stmt = con.createStatement(); stmt.execute(sp); stmt.close(); 存储过程: create procedu

我在使用Sybase的jdbc驱动程序时遇到了存储过程中有很多insert语句的问题。插入50-60次后,存储过程停止执行并返回。请参阅下面的代码

我正在使用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
创建过程dba.sp_test()
像
开始
声明@lnCount整数
选择@lnCount=1

而(@lnCount使用executeUpdate解决了问题:

String sp = "sp_test";
Statement stmt = con.createStatement();
stmt.executeUpdate(sp);
stmt.close();

我相信,如果您在stmt.execute()之后立即插入
con.commit()
,也会起作用。

我无法检查自己,但尝试将“set nocount on”放入进程头中。