Java中有多种实现循环的方式,数据库中可使用游标实现循环操作数据。
1. 存储过程中(较为严谨的写法)
CREATE OR REPLACE PROCEDURE PROCEDURE_NAME(PI_BATCHNO IN PKG_GLOBALS.T_BATCHNO)
AS
VC_SPNAME PKG_GLOBALS.T_SPNAME; --记录操作表名称
CUR_ACCOUNT PKG_GLOBALS.T_CURSOR_REF; --操作游标
VE_EXCEPTION EXCEPTION;
TYPE R_ACCOUNT IS RECORD(
--定义结果集变量
--sql查询多少个字段这里就应该有多少个变量
);
TYPE T_R_ACCOUNT IS TABLE OF R_ACCOUNT ;
VRT_S_ACCOUNT T_R_ACCOUNT;
VN_NEXT_SK PKG_GLOBALS.T_NUMBER10;
BEGIN
OPEN CUR_ACCOUNT FOR
--执行SQL
LOOP
FETCH CUR_ACCOUNT BULK COLLECT
INTO VRT_S_ACCOUNT LIMIT 1000;
EXIT WHEN VRT_S_ACCOUNT.COUNT = 0;
FOR VN_ROWCOUNT IN 1 .. VRT_S_ACCOUNT.COUNT LOOP
---处理流程
--调用结果集变量时编写:VRT_S_ACCOUNT.变量名
END LOOP;
COMMIT;
END LOOP;
CLOSE CUR_ACCOUNT;
EXCEPTION
WHEN VE_EXCEPTION THEN
IF CUR_ACCOUNT%