我有一辆MVW,如下所示,这是一个现有的。
CREATE MATERIALIZED VIEW ADS.MVW_AGREEMENT (AGR_ID,_AGR_NBR,SRC_DOC_CD,FNL_DOC_RECPT_DT,AGR_SRC_SYS_CD,UHG_REL_IND)
TABLESPACE ADSDATA
AS
SELECT sfa.agr_id,
sfa.agr_nbr,
sfa.src_doc_cd,
sfa.fnl_doc_recpt_dt,
sfa.agr_src_sys_cd,
sfa.uhg_rel_ind
FROM ADS.agreement sfa;在协议表中,src_doc_id是varchar2(15)。现在,如果我需要将此字段长度更改为20。当我在表中这样做并尝试刷新MVW时,我将面临如下错误:
ORA-12899: value too large for column
"ADS"."MVW_AGREEMENT"."src_doc_cd" (actual: 20, maximum:15)你能指导我解决这个问题吗?
发布于 2018-01-03 14:53:19
您需要发出一个alter materialized view来修改MV中的列,就像在基表中修改它一样。
简短的示例(您缺少的是第四行代码,根据您的情况进行调整):
create table t ( x varchar2(10) );
create materialized view v as select * from t;
alter table t modify ( x varchar2(20) );
alter materialized view v modify ( x varchar2(20) );https://stackoverflow.com/questions/48057973
复制相似问题