在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語句提交事務,以確保刪除操作生效。