天天看點

DB2 存儲過程傳回結果集

存儲過程傳回結果集,但是并未明确定義out參數的情況下,要正确擷取到結果集,則必須明确設定傳回結果集個數: result set 結果集個數 如果沒有聲明傳回結果集個數,那麼存儲過程中定義的遊标是擷取不到其值的 1:建立存儲過程

create procedure proName(in tabName varchar(20))
	result set 1
	language sql
p1:begin
	declare v_code integer default -1;
	declare v_rows integer default -1;
	begin
		declare c1 cursor with return for values(v_code,v_rows);
		open c1;
	end;
end p1
           

2:使用jdbc連結資料庫,通過java代碼調用上述存儲過程

String callPro="{call proName(?)}";
CallableStatement call=conn.prepareCall(callPro);
call.setString(1,"tabName");
boolean flag=call.execute();
ResultSet rst=call.getResultSet();
while(rst.next()){
	String str1=rst.getString(1);
	......
	}
system.out.println(str1)