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