说我有这个类型:
create or replace TYPE type1
AS OBJECT
(order_date DATE
,order_status VARCHAR2(50)
,offer NUMBER
)
如何将“优惠”的数据类型更改为VARCHAR2(20)
?
答案 0 :(得分:1)
使用ALTER TYPE
语法只能扩展:
ALTER TYPE type1 MODIFY ATTRIBUTE (offer VARCHAR2(20));
-- only widening of attribute 'OFFER' constraints is allowed
您需要重新创建类型:
create or replace TYPE type1 AS OBJECT(
order_date DATE
,order_status VARCHAR2(50)
,offer VARCHAR2(20)
);
答案 1 :(得分:0)
您无需为案例重新创建类型 ,只需DROP/ADD
(带有cascade
或invalidate
选项 )ATTRIBUTE
足够
ALTER TYPE type1 DROP ATTRIBUTE offer [cascade|invalidate];
ALTER TYPE type1 ADD ATTRIBUTE offer varchar2(20) [cascade|invalidate];