有以下幾種方法可以清空Oracle數(shù)據(jù)庫中所有表的數(shù)據(jù):
BEGIN
FOR cur_rec IN (SELECT table_name FROM user_tables) LOOP
EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || cur_rec.table_name;
END LOOP;
END;
BEGIN
FOR cur_rec IN (SELECT table_name FROM user_tables) LOOP
EXECUTE IMMEDIATE 'DELETE FROM ' || cur_rec.table_name;
END LOOP;
END;
CREATE OR REPLACE PROCEDURE clear_all_tables IS
BEGIN
FOR cur_rec IN (SELECT table_name FROM user_tables) LOOP
EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || cur_rec.table_name;
END LOOP;
END clear_all_tables;
然后可以調(diào)用該存儲(chǔ)過程來清空所有表的數(shù)據(jù):
EXEC clear_all_tables;
無論使用哪種方法,都應(yīng)謹(jǐn)慎操作,確保清空表數(shù)據(jù)不會(huì)對(duì)系統(tǒng)產(chǎn)生負(fù)面影響。備份數(shù)據(jù)并在生產(chǎn)環(huán)境之前進(jìn)行測試。