PDA

View Full Version : Bei Dateierstellung per SQL wird eine View gelöscht



Jenne
05-11-19, 10:33
Hallo Kollegen,

ich habe eine Merkwürdigkeit und kann leider nicht herausbekommen woran es liegt.
Bei der Erstellung einer Datei per SQL_Script wird mir eine View gelöscht mit der Fehlermeldung CPI3212 (Dateiabhängigkeit). Aber diese View hat aus meiner Sicht keine Dateiabhängigkeit zu der erstellten Datei. Wie kann ich die Abhängigkeit herausbekommen.
Mit DSPFFD und DSPFD wird mir nichts angezeigt.

Vielleicht hat einer noch eine Idee?

Schönen Dank im Voraus
Jenne

Fuerchau
05-11-19, 11:17
DSPDBR ist dein Freund.

Du kannst aber auch einen "Create or Replace Table ..." verwenden. Dann bleiben alle Indizes/Views und auch die Daten erhalten.
Nur wenn du Felder entfernst kann es zu Problemen kommen.

Jenne
06-11-19, 07:48
Hallo Fuerchau,

Danke hat geklappt. Der Befehl war mir entfallen.

Schöne Grüße
Jenne

Fuerchau
06-11-19, 09:10
Bedenke dabei, dass eine View die neuen Felder dann noch nicht enthält!

Gutmann
18-12-19, 20:55
Du kannst aber auch einen "Create or Replace Table ..." verwenden. Dann bleiben alle Indizes/Views und auch die Daten erhalten.


Was ist eigentlich dann der Vor-/Nachteil beim hinzufügen neuer Spalten im Vergleich zum bisherigen ALTER TABLE ADD COLUMN?

B.Hauser
19-12-19, 08:44
Beim CREATE OR REPLACE kannst Du das vorhandene SQL Skript verändern und damit u.a. auch neue Spalten nicht nur am Ende der Feld-Liste sondern auch dazwischen implementieren.
Damit kannst Du z.B. das SQL Skript in einer ganz normalen Teildatei speichern, bei der nächsten Änderung modifizieren und anschließend mit RUNSQLSTM ausführen. (ganz ähnlich wie wenn man mit DDS arbeitet)

Beim CREATE OR REPLACE kannst Du mehrere Änderungen (neue Spalten hinzufügen und vorhandene Spalten ändern) mit einem einzigen Befehl ausführen, während Du pro ALTER TABLE-Befehl immer nur eine Änderung machen kannst.

Übrigens "under the cover" werden die Änderungen über CREATE OR REPLACE TABLE in ALTER TABLE-Statements konvertiert und dann einzeln ausgeführt
... also was mit ALTER TABLE nicht geht, geht auch mit CREATE OR REPLACE nicht.

Birgitta

Gutmann
19-12-19, 09:31
Hallo Frau Hauser, danke für die Erläuterung!

Fuerchau
19-12-19, 17:49
Allerdings findet das Umkopieren der Daten sowie Erstellen der Abhängigkeiten beim CREATE or REPLACE nur 1x statt, während jeder einzelne ALTER TABLE die Tabelle neu erstellt Views umhängt sowie Indizes neu generiert.

Was übrigens der CHGPF mit Source-Angabe schon länger konnte, "or Replace" kam leider erst später.