Java 带JDBC驱动程序的Sybase存储过程插入限制
我在使用Sybase的jdbc驱动程序时遇到了存储过程中有很多insert语句的问题。插入50-60次后,存储过程停止执行并返回。请参阅下面的代码 我正在使用Sybase Anywhere 10及其jconn2.jar,但也尝试了jconn3.jar java代码: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
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”放入进程头中。