在Oracle中,可以使用以下方法循环删除表数据:
DECLARE
CURSOR c_data IS
SELECT *
FROM your_table;
BEGIN
FOR r_data IN c_data LOOP
DELETE FROM your_table
WHERE CURRENT OF c_data;
END LOOP;
COMMIT;
END;
/
DECLARE
v_count NUMBER;
BEGIN
LOOP
DELETE FROM your_table
WHERE rownum <= 1000; -- 每次删除1000行
v_count := SQL%ROWCOUNT;
EXIT WHEN v_count = 0; -- 直到没有行被删除为止
COMMIT;
END LOOP;
END;
/
这些方法可以逐行或按批次删除表数据,具体使用哪种方法取决于你的需求和数据量。无论使用哪种方法,都应该在删除操作之后使用COMMIT语句提交事务,以确保删除操作生效。