Sybase의 jdbc 드라이버를 사용할 때 insert 문이 많은 저장 프로 시저에 문제가 있습니다. 50-60 삽입 후 저장된 프로 시저가 실행을 중지하고 반환합니다. 아래 코드를 참조하십시오.Sybase 저장 프로 시저 JDBC 드라이버에 대한 삽입 제한
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 드라이버를 사용해 보았지만 정상적으로 작동하지만 다른 문제가 있기 때문에이 드라이버를 솔루션으로 사용할 수 없습니다.
String sp = "sp_test";
Statement stmt = con.createStatement();
stmt.executeUpdate(sp);
stmt.close();
자신을 확인할 수 없지만 "set nocount on"을 proc 헤더에 넣으려고합니다. – kolchanov