1
create or replace type My_abc_typ FORCE as object    
(
  ...
  Pqr  pqr_typ,
  ... 
)
/ 

实际上表My_abc被创建为

CREATE TABLE "ABC"."My_abc" OF "ABC"."My_abc_TYP" 
(... ,
...)

和主键和索引是为了这个

问题出在类型中,我已经更改了特定列的数据类型,并对其进行了编译……它工作正常。但表格并没有反映变化......它的显示

(
  ...
  Pqr  (null),
  ... 
)

为了单独修改该列,我执行了以下查询

alter table  My_abc modify Pqr  pqr_typ;

出现以下错误

SQL 错误:ORA-04063:表“ABC.My_abc”有错误
04063。00000 -“%s 有错误”
*原因:尝试执行存储过程或使用有
错误的视图。对于存储过程,问题可能是语法错误
或对其他不存在的过程的引用。对于视图,
问题可能是视图的定义查询中对
不存在的表的引用。
也可以是引用不存在或
不可访问类型的表。
*行动:修复错误和/或根据需要创建引用的对象。

4

1 回答 1

0

而不是重新创建类型:将 typ 属性修改为:

ALTER TYPE my_abc_typ MODIFY ATTRIBUTE (pqr VARCHAR2(20))CASCADE NOT INCLUDING TABLE DATA;

链接:http ://docs.oracle.com/cd/E11882_01/appdev.112/e11822/adobjadv.htm

谢谢。

于 2013-09-20T11:27:18.890 回答