Этот сабж - это вообще какое то сборище нелепостей.
Во первых, всецело поддерживаю andrey_anonymous. Это совершенно недопустимый дизайн в Oracle. Все таблицы необходимо создавать на стадии проектирования, а не в runtime. Это не MS SQL.
Но это так сказать вещи идеологические.
GrandMaster |
Сами по себе обе команды в SQL у меня выполняеться
drop table t ;
execute immediate 'create global temporary table t preserve rows as select * from main where 0=1; |
|
Позвольте не поверить . В create table синтаксическая ошибка.
Ознакомьтесь внимательно с синтаксической диаграммой
CREATE TEMPORARY TABLEА если исправите эту ошибку, то в триггере немедленно возникнет новая ошибка
ORA-04092: cannot COMMIT in a trigger
Откуда берется ORA-30512 я не понимаю.
Вы что , Queue Table используете ?
В общем положите временную таблицу заранее, исправив ошибки , уберите триггер и забудьте об этом , как о страшном сне :)