DDL всередині PL / SQL-коду - більше виняток, ніж реальна потреба. Синтаксичний аналіз може розглядатися як перевірка структури, яка втрачається, якщо ваша структура змінюється під час виконання. Процедури призначені для того, щоб знову проаналізувати інші об'єкти (таблиці чи інший код pl / sql, представлення тощо). Кожен раз, коли залежно від об'єкта змінюється, його слід перекомпілювати. Отже, проаналізований код чогось, ніж зміна структури, неможливо перевірити і як такий скласти. Розглянемо випадок
DROP TABLE T1;
За час розбору буде знайдено таблицю і процедуру буде успішно скомпільовано, але при першому виконанні таблиця випадає і ваш код більше не дійсний (наступного разу DROP TABLE призведе до помилки). Аналогічно, будь-яка зміна DDL таблиці призведе до необхідності перекомпіляції, що втрачає перевагу для аналізу коду.