在Oracle中批量drop多個數據庫的腳本實現可以分為兩種方法,一種是使用循環逐個drop數據庫,另一種是使用動態SQL語句一次性drop多個數據庫。
方法一:使用循環逐個drop數據庫
DECLARE
CURSOR c_databases IS
SELECT DISTINCT name
FROM v$database;
BEGIN
FOR db IN c_databases LOOP
EXECUTE IMMEDIATE 'DROP DATABASE ' || db.name || ' INCLUDING DATAFILES';
END LOOP;
END;
/
方法二:使用動態SQL語句一次性drop多個數據庫
DECLARE
v_sql VARCHAR2(4000);
BEGIN
SELECT 'DROP DATABASE ' || listagg(name, ',') WITHIN GROUP (ORDER BY name) || ' INCLUDING DATAFILES'
INTO v_sql
FROM v$database;
EXECUTE IMMEDIATE v_sql;
END;
/
注意:在執行drop數據庫操作前,請務必備份好數據,避免數據丟失。