DDL in PL / SQL-Code ist mehr Ausnahme als wirklich nötig. Das Parsen kann als Strukturüberprüfung angesehen werden, die verloren geht, wenn sich Ihre Struktur bei der Ausführung ändert. Prozeduren sollen andere Objekte (Tabellen oder anderen pl / sql-Code, Ansichten usw.) erneut analysieren. Jedes Mal, wenn sich ein Objekt ändert, sollte es neu kompiliert werden. Das Erstellen von analysiertem Code aus etwas anderem als der Änderungsstruktur kann daher nicht überprüft und als solches kompiliert werden. Betrachten Sie den Fall
DROP TABLE T1;
Während der Analysezeit würde die Tabelle gefunden und die Prozedur erfolgreich kompiliert, aber bei der ersten Ausführung wird die Tabelle gelöscht und Ihr Code ist nicht mehr gültig (das nächste Mal würde DROP TABLE zu einem Fehler führen). In ähnlicher Weise würde jede Änderung an der Tabellen-DDL eine Neukompilierung erforderlich machen, wodurch der Vorteil der Code-Analyse verloren geht.