Сбой при изменении типа в Oracle с ORA-22324 и ORA-21700 - PullRequest
0 голосов
/ 22 июня 2010

Я пытаюсь добавить атрибут к уже существующему типу объекта в БД Oracle 10.2.0.4. Схема действительна, и все работает до запуска следующего оператора:

ALTER TYPE sometype ADD ATTRIBUTE (somefield varchar(14))
CASCADE INCLUDING TABLE DATA
/
SHOW ERRORS

Изменение не удается с ORA-22324 и ORA-21700. Впоследствии большинство объектов схемы, которые зависят от некоторого типа, являются недействительными. Компилируя их все, восстанавливает схему в рабочее состояние.

Кто-нибудь видел такую ​​ошибку?

Ответы [ 2 ]

1 голос
/ 22 июня 2010

ORA-22324 - «Измененный тип содержит ошибки компиляции», а ORA-21700 - «Объект не существует или помечен для удаления».Похоже, что тело вашего типа ссылается на то, что было удалено.

Надеюсь, это поможет.

0 голосов
/ 10 апреля 2013

Я знаю, что это старо, но мой ответ может помочь людям, которые найдут это позже.

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

Однако важно понимать руководство разработчика Oracle до изменения типов (особенно, когда у вас есть таблицы, использующие тип):

Вот руководство разработчика объекта для Oracle 9i: http://docs.oracle.com/cd/B10501_01/appdev.920/a96594.pdf

Также указывает на перекомпиляцию тела http://database -geek.com / 2005/05/26 / oracle-objects-types-types-collection-part-3 /

EXEC DBMS_UTILITY.compile_schema (схема => 'SOME_SCHEMA');- Может также предоставить полезные результаты для вас, если у вас есть много вещей, которые стали недействительными с вашим изменением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...