Oracle:修改varchar列大小后重新创建数据库视图

时间:2010-09-08 11:03:58

标签: oracle

我对数据库表中的列进行了一些更改(增加了varchar的大小),但是我需要刷新表的视图以获取此更改。在SQL Server 2005中,我将使用脚本 - >更改以重新创建视图的脚本。我试图弄清楚Oracle SQL命令将重建视图以显示列的更改?

3 个答案:

答案 0 :(得分:6)

除非您的视图明确限制列的大小,否则它将自动获取更改。它可能已被表更改无效,但在首次使用时会自动重新编译;或者可以使用alter view <view name> compile手动重新编译。

答案 1 :(得分:1)

如果您这样做:

create table sample_table(text varchar2(10));
insert into sample_table (text) values('text...');
create view sample_view as select * from sample_table;
select * from sample_view;
alter table sample_table modify text varchar2(200);

在Oracle数据库中,您没有做任何事情来促进此更改。

或者您可以使用“ALTER VIEW sample_view COMPILE”(如何写@AlexPole或@devio)。当您在alter table之后首次使用select on sample_view时,Oracle会自动执行此操作。

答案 2 :(得分:0)

尝试

ALTER VIEW MyView COMPILE;