在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数据库操作前,请务必备份好数据,避免数据丢失。