Ich muss eine Ansicht über eine Tabelle erstellen und möchte nicht jedes Mal, wenn sich die Tabellenstruktur ändert, die Ansicht ändern. Gibt es eine solche Möglichkeit? Irgendwelche Hinweise darauf geschätzt.Oracle-Ansichten ohne Auswirkungen auf die zugrunde liegenden Änderungen der Tabellenstruktur
0
A
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
- 1. Nehmen Datenbank-Cursor Änderungen an den zugrunde liegenden Daten auf?
- 2. Löschen der zugrunde liegenden Referenz
- 3. Gruppen ignorieren Maxibright der zugrunde liegenden Komponente
- 4. Flash-Overlay auf zugrunde liegenden Divs Snagging
- 5. Lebensdauern der zugrunde liegenden Referenzfelder weitergeben?
- 6. Unterbrechen der zugrunde liegenden Ausführung von CompletableFuture
- 7. DropDownList get zugrunde liegenden Objekt
- 8. Zugriff auf CGImageRef zugrunde liegenden Bytes und ändern?
- 9. Bietet CasperJS Verweise auf die zugrunde liegenden PhantomJS-Objekte?
- 10. Verzögern der DataGridView-Aktualisierung beim Bearbeiten der zugrunde liegenden DataTable
- 11. Herunterfahren von SSL, ohne den zugrunde liegenden Socket zu schließen?
- 12. Ändern der zugrunde liegenden Hintergrundfarbe eines Swing-Fensters
- 13. Klicks auf Textansicht nicht auf zugrunde liegenden Zeichen gezogen
- 14. Holen Sie zugrunde liegenden NSData * von UIImage
- 15. Jquery Sortierbare ID des zugrunde liegenden div
- 16. Wie aktive Abfrage zugrunde liegenden Cursor anzeigen
- 17. Schließen Sie alle zugrunde liegenden Netzwerkverbindungen
- 18. kann nicht zugrunde liegenden Modul laden bmspush
- 19. IQueryable ausführen Ausdruck gegen zugrunde liegenden QueryProvider
- 20. EF4 Cast DynamicProxies zu zugrunde liegenden Objekt
- 21. SqlDataAdapter.Fill() Timeout - zugrunde liegenden Sproc zurückgegeben schnell
- 22. Erste zugrunde liegenden Typ eines Proxy-Objekt
- 23. Kryo Serializer verursacht Ausnahme auf zugrunde liegenden Scala-Klasse WrappedArray
- 24. Ereignisse des zugrunde liegenden Steuerelements anzeigen
- 25. Ist Spring von der zugrunde liegenden Datenbank betroffen?
- 26. Reorder Menüelemente ohne Auswirkungen auf die Datenbank-ID
- 27. Cursorloader nicht aktualisiert, wenn sich die zugrunde liegenden Daten ändern
- 28. automatisch wählen Schemaänderung der zugrunde liegenden Tabelle für Ansicht
- 29. Speicherdauer der zugrunde liegenden Zeichendaten mit benutzerdefinierten String-Literal
- 30. Get Typ der zugrunde liegenden Klasse von einem Delegaten