DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Использование динамического SQL

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


 









jAntivirus