|
|
|
новичок
      
участник
Last Login: 19.10.2005 8:54
Сообщ.: 4,
Visits: 45
|
|
Проблемка такая: Процедура после успешного выполнения переходит из состояния "откомпилирована" в "неоткомпилирована". В процессе работы самой процедуры ошибок не возникает. Основа кода состоит из удаления и создания таблицы:
dbms_utility.exec_ddl_statement ('drop table AAA');
dbms_utility.exec_ddl_statement ('create table AAA TABLESPACE users as (select .... from .... where ... )');
Повторно процедура компилируется без ошибок, но после единичного выполнения опять раскомпилируется. Выполнение каждой команды в отдельности проходит успешно.
|
|
|
|
|
Junior Member
      
участник
Last Login: 16.08.2005 15:57
Сообщ.: 11,
Visits: 122
|
|
| ну вообщем то нормально. при изменении таблицы а тем более при удалении объекты которые обращаются к ней становятся некомпилированными.
|
|
|
|
|
новичок
      
участник
Last Login: 19.10.2005 8:54
Сообщ.: 4,
Visits: 45
|
|
Да, действительно :) Есть идеи как это исправить?
|
|
|
|
|
Junior Member
      
участник
Last Login: 16.08.2005 15:57
Сообщ.: 11,
Visits: 122
|
|
DBMS_UTILITY.COMPILE_SCHEMA ))). А нафига если не секрет таблицы пересоздавать?
|
|
|
|
|
новичок
      
участник
Last Login: 19.10.2005 8:54
Сообщ.: 4,
Visits: 45
|
|
| В данном конкретном случае чтоб пересоздать меньше надо сделать движений чем инсертить :)
|
|
|
|
|
Junior Member
      
участник
Last Login: 16.08.2005 15:57
Сообщ.: 11,
Visits: 122
|
|
dbms_utility.exec_ddl_statement ('drop table AAA');
dbms_utility.exec_ddl_statement ('create table AAA TABLESPACE users as (select .... from .... where ... )');
а чем меньше чем в таком варианте
truncate table AAA;
insert into AAA (select .... from .... where ...) ;
|
|
|
|
|
новичок
      
участник
Last Login: 15.07.2005 3:50
Сообщ.: 5,
Visits: 56
|
|
Или
create global temporary table AAA
on commit preserve rows
as select *
По завершению сессии таблица чистится., минимум накладных расходов.
|
|
|
|