游标遍历动态SQL
--游标遍历动态SQL
VC_SQL_STR VARCHAR2(3000); --sql VN_COMMIT_CNT INTEGER; --事务提交计数器 C_MAIN_CURSOR SYS_REFCURSOR; --游标 VR_MAIN_RECORD 表名%ROWTYPE; --行记录变量 BEGIN VN_COMMIT_CNT := 0; VC_SQL_STR := 'SELECT * FROM 表名'; OPEN C_MAIN_CURSOR FOR VC_SQL_STR; --打开游标 LOOP FETCH C_MAIN_CURSOR INTO VR_MAIN_RECORD; EXIT WHEN C_MAIN_CURSOR%NOTFOUND;--无数据退出 --逻辑 --循环100条记录commit VN_COMMIT_CNT := VN_COMMIT_CNT + 1; IF (VN_COMMIT_CNT = 100) THEN COMMIT; VN_COMMIT_CNT := 0; END IF; END LOOP; CLOSE C_MAIN_CURSOR; --关闭游标 END;