Процедура после выполнения раскомпилируется
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Процедура после выполнения раскомпилируется Expand / Collapse
Автор
Сообщение
29.04.2005 7:08
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
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 ... )');

Повторно процедура компилируется без ошибок, но после единичного выполнения опять раскомпилируется. Выполнение каждой команды в отдельности проходит успешно.
Сообщ. #867034
29.04.2005 11:32
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 16.08.2005 15:57
Сообщ.: 11, Visits: 122
ну вообщем то нормально. при изменении таблицы а тем более при удалении объекты которые обращаются к ней становятся некомпилированными.
Сообщ. #867074
29.04.2005 11:46
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.10.2005 8:54
Сообщ.: 4, Visits: 45
Да, действительно :)
Есть идеи как это исправить?
Сообщ. #867082
29.04.2005 12:47
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 16.08.2005 15:57
Сообщ.: 11, Visits: 122
DBMS_UTILITY.COMPILE_SCHEMA ))).
А нафига если не секрет таблицы пересоздавать?
Сообщ. #867100
29.04.2005 12:50
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.10.2005 8:54
Сообщ.: 4, Visits: 45
В данном конкретном случае чтоб пересоздать меньше надо сделать движений чем инсертить :)
Сообщ. #867101
29.04.2005 12:54
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior 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 ...) ;
Сообщ. #867104
30.05.2005 5:39
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 15.07.2005 3:50
Сообщ.: 5, Visits: 56
Или
create global temporary table AAA
on commit preserve rows
as select *
По завершению сессии таблица чистится., минимум накладных расходов.
Сообщ. #870126
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 10:05