Mit dem folgenden Statement (Anonymer Block) kann DDL erstellt und ausgeführt werden.
set serveroutput on;
set serveroutput on size unlimited;
--------------------------------------------------------------------------------
-- 24.03.2020 SHESS Dieser Block entfernt Views innerhalb eines Schemas.
-- Die zu löschende Views werden durch die
-- WHERE-CLAUSE eingeschränkt.
--
--
--
DECLARE
ddl2excecute VARCHAR2(8096) ;
i NUMBER := 1;
BEGIN
--
FOR txt IN ( SELECT 'DROP VIEW '||view_name ddl2excecute ,view_name
FROM user_views
WHERE SUBSTR(view_name,1,3)= 'VIEW_PREFIX'
ORDER BY view_name
)
LOOP
ddl2excecute := txt.ddl2excecute;
EXECUTE IMMEDIATE ddl2excecute;
DBMS_OUTPUT.PUT_LINE(' View entfernt: ' ||LPAD(TO_CHAR (i),3,'0')|| ' ' || txt.view_name);
i := i +1;
END LOOP;
EXCEPTION
WHEN OTHERS THEN RAISE;
DBMS_OUTPUT.PUT_LINE(' Ora ' ||SQLERRM);
--
END;