将新列添加到现有类型

时间:2013-09-18 11:17:14

标签: oracle user-defined-types

我有一个类型:

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 个答案:

答案 0 :(得分:1)

可能您已经在表格中使用了“员工”类型。您需要先删除所有使用此类型的表,然后再进行更改。您还应该更改“日期”字段,使其成为关键字。