Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > ORA-02303


Автор: azesmcar 8.5.2009, 16:00
Цитата

Cause

An attempt was made to drop or replace a type that has dependents. There could be a substitutable column of a supertype of the type being dropped.
Action

Drop all type(s) and table(s) depending on the type, then retry the operation using the VALIDATE option, or use the FORCE option.

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

Как это исправить?

Автор: Zloxa 8.5.2009, 16:34
Цитата(azesmcar @  8.5.2009,  16:00 Найти цитируемый пост)
как FORCE то использовать? 

Код

SQL> create type testt as object (id number)
  2  /
 
Type created
SQL> create table testt1 (t testt);
 
Table created
SQL> drop type testt;
 
drop type testt
 
ORA-02303: невозможно удалить или заменить тип, от кот. зависят типы или таблицы
SQL> drop type testt force;
 
Type dropped
 



Цитата(azesmcar @  8.5.2009,  16:00 Найти цитируемый пост)
что за маразм?

А как ты хочешь?
Какой тип у поля T таблицы testt1 после того как ты дропнул тип?
А потом создал новый, пусть даже и с тем же именем?


Цитата(azesmcar @  8.5.2009,  16:00 Найти цитируемый пост)
мне нужно откомпилировать этот тип и только.

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4002.htm#SQLRF01102

Автор: azesmcar 8.5.2009, 16:42
Цитата(Zloxa @  8.5.2009,  16:34 Найти цитируемый пост)

А как ты хочешь?
Какой тип у поля T таблицы testt1 после того как ты дропнул тип?
А потом создал новый, пусть даже и с тем же именем?

т.е. ? я не хочу его дропать..я хочу изменить тело функции к примеру. Если я буду дропать все связанные с ним обьекты, компиляция займет у меня 24 часа. 

Цитата(Zloxa @  8.5.2009,  16:34 Найти цитируемый пост)
alter type 

это знаю, но как добавлять/изменять/удалять функции из типа с помощью алтер?

Автор: Zloxa 8.5.2009, 16:47
ЗЫ 
Не в состоянии тебе сейчас аргументировать, но, в свое время, основываясь в том числе и на мнении комьюнити, я зарекся хранить данные объектного типа. Много гемороев при модификации схемы и прееносе данных.

Кайт тоже остерегал, тоже чем то аргументировал. Предлагал использовать надстройку в виде объектной вьюхи над реляционной таблицей.

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

Добавлено через 3 минуты и 48 секунд
Цитата(azesmcar @  8.5.2009,  16:42 Найти цитируемый пост)
т.е. ? я не хочу его дропать..я хочу изменить тело функции к примеру

Dorp typebody этой ошибки не выдает (AFAIK, могу ошибаться)
Цитата(azesmcar @  8.5.2009,  16:42 Найти цитируемый пост)
но как добавлять/изменять/удалять функции из типа с помощью алтер?

Мля, а промотать страницу по ссылке и хотябы  посмотреть примеры (не говорю уже о почитать) что не позволяет?

Автор: azesmcar 8.5.2009, 16:53
Цитата(Zloxa @  8.5.2009,  16:47 Найти цитируемый пост)
ЗЫ 
Не в состоянии тебе сейчас аргументировать, но, в свое время, основываясь в том числе и на мнении комьюнити, я зарекся хранить данные объектного типа. Много гемороев при модификации схемы и прееносе данных.

Да нет, аргументировать не надо...мне нужно вопрос решить smile

так что, нет шансов скомпилировать это нормально?

Добавлено через 2 минуты и 4 секунды
Цитата(Zloxa @  8.5.2009,  16:47 Найти цитируемый пост)
Мля, а промотать страницу по ссылке и хотябы  посмотреть примеры (не говорю уже о почитать) что не позволяет? 

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

ALTER TYPE data_typ1 
   ADD MEMBER FUNCTION qtr(der_qtr DATE) 
   RETURN CHAR CASCADE;

мне нужно по человечески - открыл тип в PL/SQL, Edit spec and body, изменил, откомпилировал, забыл...

Добавлено через 11 минут
Ладно, разобрался...если только body, менять можно с помощью обычного
Код

create or replace type

добавлять новые функции буду не так часто, алтер сойдет.

спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)