2013-09-18 4 views
1

У меня есть тип:Добавить новый столбец в существующий тип

create or replace type employee FORCE as object (
    id VARCHAR2(8), 
    code NUMBER(11)) 

Я пытаюсь добавить еще один столбец к типу, так что это будет следующим образом:

create or replace type employee FORCE as object (
    id VARCHAR2(8), 
    code NUMBER(11), 
    date NUMBER(8)) 

Я получение ошибки:

ORA-22866: cannot replace a type with table dependents 
22866. 00000 - "default character set is of varying width" 
*Cause: A character `LOB` was defined but the default character 
      set is not fixed width. 
*Action: Ensure that the character set is of fixed width before defining 
      character `LOBs`. 

Как добавить еще один столбец к этому типу?

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

+1

Привет 'date' является _really_ плохим именем для столбца, поскольку это зарезервированные слова и должен быть указан. Подумайте об изменении имени на что-то вроде «job_date» и т. Д. – Ben

ответ

1

Возможно, вы уже использовали тип «сотрудник» в таблице. Вам нужно сначала удалить все таблицы, которые используют этот тип, а затем изменить его. Вы также должны изменить поле «дата», вызывая его ключевое слово.

+0

да, я использую его ссылку в одной или нескольких таблицах – Guru

+1

№. Не отбрасывайте существующие данные. Вместо этого используйте 'alter type add attribute'. – ibre5041

+0

Дата добавления сотрудника изменения типа NUMBER (8); бросает следующую ошибку 06545. 00000 - «PL/SQL: ошибка компиляции - компиляция прервана» * Причина: Произошла ошибка PL/SQL компиляции и компиляция прервана полностью без единицы компиляции записываются из в хранилище. В отличие от ora-06541, пользователь всегда будет видеть эту ошибку вместе с сообщениями об ошибке PLS-nnnnn. * Действие: см. Сопроводительные сообщения об ошибках PLS-nnnnn. – Guru

Смежные вопросы