使用plsql,调用存储过程删除数据,数据已成功删除,但执行时间还在走。
点击停止,就会报错误
点击确定,又会报
代码如下:
CREATE OR REPLACE PROCEDURE PRO_DEL_DATA IS
V_COUNT NUMBER;
CURSOR CUR IS
SELECT HISID FROM T_xxxxx T WHERE T.TOTAL_COST < 0;
BEGIN
V_COUNT := 0;
FOR VR IN CUR LOOP
BEGIN
DELETE FROM T_xxxxx T2 WHERE T2.HISID = VR.HISID;
EXCEPTION
WHEN NO_DATA_FOUND THEN
CONTINUE;
END;
V_COUNT := V_COUNT + 1;
IF V_COUNT MOD 1000 = 0 THEN
COMMIT;
END IF;
END LOOP;
COMMIT;
END;
可能是网络问题,我是连接的远程数据库,直接远程桌面运行存储过程没有这个问题,但本地plsql直接连接远程数据库就存在这个问题
在BEGIN块内的NO_DATA_FOUND那添加一个EXIT 退出,整明内部已经没有的时候就退出