Почему ошибка в блоке

Алекс-Могилев
Дата: 26.10.2015 18:19:11
Есть PL/SQL блок:


begin
  execute immediate 'create table t1 (f1 number)';
  
  for rec in (select *
                from t1)
  loop
    null;
  end loop;
end;



При выполнении вылетает ошибка. Помогите почему. Если все правильно выполняю.
Vadim Lejnin
Дата: 26.10.2015 18:21:37
Алекс-Могилев,

Потому, что на момент компиляции таблицы не существует
oragraf
Дата: 26.10.2015 18:22:13
Алекс-Могилев,

Блок - это команда. которая компилируется перед выполнением с проверкой полномочий и наличием таблиц. Таблицы на момент компиляции еще нет. Либо все в dsql либо цикл в отдельный блок
чем бы могилев не тешился
Дата: 26.10.2015 18:26:49
Алекс-Могилев,

и сколько же раз должен выполниться null, чтобы придумать оправданное применение динамическому sql.