Вопрос по oracle, plsql – ORA-02303: невозможно удалить или заменить тип на зависимости типа или таблицы

10

Я новичок в оракуле и Я пытаюсь изменить varchar (50) на 250

   CREATE OR REPLACE TYPE CEQ_OWNER.TYPE_REC_PARAE2

   AS OBJECT    
   (
     ...
     BONETAT_DESC  VARCHAR2(250),
     ... 
   )
   /    

Я получаю ORA-02303: не могу удалить или заменить тип с зависимостями типа или таблицы

Спасибо

Ваш Ответ

4   ответа
18

Существуют другие типы или таблицы, которые зависят от типа, который вы хотите изменить. Если это зависимый тип, то вы можете использовать опцию FORCE, чтобы изменить тип.

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

Видеть этоДокументация Oracle для получения дополнительной информации.

Вы, вероятно, блокируете друг друга. Закройте все инструменты SQL (ваши и ваших коллег), запустите один инструмент и попробуйте снова.
Хотя я могу скомпилировать свой тип без проблем, у моего коллеги есть такая же ошибка. Она пробовала в TOAD и SQL Developer. Мы не можем понять, почему. Есть ли у вас какие-либо идеи?
Да, есть таблица, в которой перечислены все зависимости (т.е. использования): DBA_DEPENDENCIES.
Есть ли способ найти все типы использования?
-2

Есть некоторая зависимость от объекта, который вы пытаетесь изменить или удалить.

Если вы хотите пропустить это, сначала отбросьте зависимый объект и попробуйте DROP или MODIFY

Как на скриншоте ниже

С Уважением, Arul

Если вы хотите поэкспериментировать с форматированием, вы можете использоватьmeta.stackexchange.com/questions/3122/formatting-sandbox
Что означает ваш ответ на ответы, которые были опубликованы несколько лет назад?
12

Я искал повсюду синтаксис, но мне было трудно найти документацию. Со страницы, на которую ссылается Кодо ... обратите внимание, чтоFORCE находится между именем объекта иas object

create or replace type ceq_owner.type_rec_parae2 FORCE as object    
(
  ...
  BONETAT_DESC  VARCHAR2(250),
  ... 
)
/ 
6

Пытаться:

drop type your_type force;
также: «удалить функцию my_demo_proc;» На случай, если ваши старые типы были вызваны из функции.

Похожие вопросы