2016-06-10 3 views

Antwort

0

Wenn Sie nicht alle Felder Ihrer Tabelle angeben möchten, können Sie eine Ansicht mit etwa select * definieren, auch wenn mir eine solche Lösung nicht gefällt. Sie müssen Ihre Ansicht jedoch immer nach einer Tabelle neu erstellen ändern. Zum Beispiel:

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. 

Die Ansicht funktioniert:

SQL> select * from yourView; 

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

Wenn Sie eine Spalte hinzufügen, die Sicht wird es nicht zeigen:

SQL> alter table yourTable add (c number); 

Table altered. 

SQL> select * from yourView; 

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

Sie benötigen eine Ansicht für den Wiederaufbau zu habe die neue Spalte:

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

View created. 

SQL> select * from yourView; 

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

Wenn Sie eine Spalte löschen, wird Ihre Ansicht ungültig und Sie müssen sie neu erstellen:

SQL> alter table yourTable drop column c; 

Table altered. 

SQL> select * from yourView; 
select * from yourView 
       * 
ERROR at line 1: 
ORA-04063: view "ALEK.YOURVIEW" has errors 


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

View created. 

SQL> select * from yourView; 

     A   B 
---------- ---------- 
     1   2 
     10   20 
Verwandte Themen