Тем не менее существует способ, обеспечивающий выполнение в PL/SQL всех допустимых операторов SQL, включая DDL. Это динамический SQL. Он позволяет создавать оператор SQL динамически, во время выполнения программы, а затем проводить его синтаксический анализ и выполнение. Такой оператор до момента выполнения программы фактически еще не создан, поэтому от компилятора PL/SQL не требуется привязывать идентификаторы этого оператора, что дает возможность скомпилировать блок. Существуют два способа применения динамического SQL в PL/SQL: встроенный динамический SQL (Огас1е8г и выше) и пакет DBMS_SQL. К примеру, можно было бы воспользоваться динамическим SQL для выполнения оператора CREATE TABLE, рассмотренного в предыдущем блоке. Однако скомпилировать оператор INSERT не удастся, так как таблица не будет существовать до выполнения блока. Решить эту
проблему можно с помощью динамического SQL. Следующий блок использует встроенный динамический SQL для создания таблицы temp_table и для последующего внесения в нее данных:
< Предыдущая | Следующая > |
---|