Oracle视图不会影响基础表结构更改

时间:2016-06-10 06:53:19

标签: oracle views

我需要在表上创建一个视图,并且不希望每次表结构更改时都更改视图。有没有这样的可能性?任何指针都赞赏这个。

1 个答案:

答案 0 :(得分:0)

如果您不想指定表格的所有字段,即使我不喜欢这样的解决方案,您也可以定义devise之类的视图,但是您总是有在表更改后重建视图。 例如:

select *

视图效果很好:

SQL> create table yourTable ( a number, b number);
Table created.

SQL> insert into yourTable values ( 1, 2);

1 row created.

SQL> insert into yourTable values ( 10, 20);

1 row created.

SQL> create or replace view yourView as select * from yourTable;

View created.

如果添加列,视图将不会显示该列:

SQL> select * from yourView;

         A          B
---------- ----------
         1          2
        10         20

您需要重建视图才能拥有新列:

SQL> alter table yourTable add (c number);

Table altered.

SQL> select * from yourView;

         A          B
---------- ----------
         1          2
        10         20

如果删除某列,您的视图将无效,您需要重建它:

SQL> create or replace view yourView as select * from yourTable;

View created.

SQL> select * from yourView;

         A          B          C
---------- ---------- ----------
         1          2
        10         20