gpt4 book ai didi

oracle - 当行表列大小更改时,如何更改物化 View 列大小?

转载 作者:行者123 更新时间:2023-12-02 21:40:59 25 4
gpt4 key购买 nike

当行表列大小更改时,如何更改物化 View 列大小?这是Linux 上的oracle 11gR2 db。我尝试重新编译MV,但没有成功。请不要将此问题自动迁移到另一个数据库站点,我想留在 stackoverflow 中。谢谢!

最佳答案

如果更改表,则还必须更改物化 View 。

--Create simple table and materialized view
create table test1(a varchar2(1 char));
create materialized view mv_test1 as select a from test1;

--Increase column width of column in the table
alter table test1 modify (a varchar2(2 char));

--Insert new value that uses full size
insert into test1 values('12');

--Try to compile and refresh the materialized view
alter materialized view mv_test1 compile;
begin
dbms_mview.refresh(user||'.MV_TEST1');
end;
/

ORA-12008: error in materialized view refresh path
ORA-12899: value too large for column "JHELLER"."MV_TEST1"."A" (actual: 2, maximum: 1)
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2563
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2776
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2745
ORA-06512: at line 3

--Increase column width of column in the materialized view and refresh
alter materialized view mv_test1 modify (a varchar2(2 char));
begin
dbms_mview.refresh(user||'.MV_TEST1');
end;
/
select * from mv_test1;
A
--
12

关于oracle - 当行表列大小更改时,如何更改物化 View 列大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13978796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com