В качестве альтернативы спулингу вы можете запустить его как анонимный блок PL / SQL (не тестировался!)
DECLARE
cursor all_codes
select 'create table XX_' ||
replace(replace(trim(table_id),'-','_'),'%','X') ||
'_LOOKUP as select * from prn_tcodes where trim(table_id) = ''' ||
trim(table_id) as sql_stmt
from prn_tcodes
group by table_id;
rec all_codes%ROWTYPE;
BEGIN
FOR rec IN get_objects LOOP
BEGIN
EXECUTE IMMEDIATE rec.sql_stmt;
END LOOP;
END;
/
(Обратите внимание, что сгенерированный оператор больше не включает в себя завершающий ;
)