Anmelden

View Full Version : Fehler bei SQL-Befehl "create xxx with data" nach Releasewechsel



Erol
09-04-24, 08:35
Hallo zusammen,
nach Umstellung von Release 7.2 auf 7.4 funktioniert bei mit OVRDBF überschriebener Datei der SQL Befehl
CREATE TABLE qtemp/tbl1 as (select * from tbl2) with data
nicht mehr vollständig. (tbl2 = mit OVRDBF überschriebene Datei)
Die Datei wird zwar erstellt, jedoch die Daten nicht kopiert.
Wenn die Datei mit
CREATE TABLE qtemp/tbl1 as (select * from tbl2) with NO data
erstellt und anschließend mit einem 2. Befehl
INSERT into qtemp/tbl1 select * from tbl2
die Daten von derselben überschriebenen Datei eingefügt werden, klappt es.
Ist dieses Problem bekannt? Welche Möglichkeiten gibt es, das Problem zu beheben ohne viel ändern zu müssen?
Danke vorab

Fuerchau
09-04-24, 09:45
Da bei SQL i.d.R. kein OVRDBF erforderlich ist, habe ich das noch nie verwendet.
SQL ist auch dynamisch. Warum verwendst du einen OVR, wo man doch die Tabellen bei solchen Kommandos direkt angeben kann?
Solltest du mit Teildateien arbeiten müssen, ist ein SQL "Create Alias ..." der bessere Weg, da dieser Teildateien unterstützt.

Erol
09-04-24, 09:54
Danke für die rasche Rückmeldung.
Natürlich gibt es viele und bessere Lösungen, aber mir geht es darum, ohne viel Aufwand das Problem zu lösen. Es handelt sich nicht um eine Neuentwicklung, sondern um eine negative Auswirkung nach der Release-Umstellung.

Fuerchau
09-04-24, 11:17
Allerdings teilst du nichts über eine Fehlermeldung mit.
Wenn es keine gibt, dann musst du wohl eine Fehlermeldung an die IBM schicken.

Amos
10-04-24, 12:42
Hallo, schau Dir mal diesen Link an, das ist vielleicht Dein Problem:
https://www.ibm.com/docs/en/i/7.3?topic=dc-ovrdbf-does-not-apply-create-table-as-select

Fuerchau
10-04-24, 13:31
Da stellt sich mir die Frage: Ging es vor 7.3. auch nicht oder hat man es da erst bemerkt:-)?

Erol
11-04-24, 07:17
Hallo, schau Dir mal diesen Link an, das ist vielleicht Dein Problem:
https://www.ibm.com/docs/en/i/7.3?topic=dc-ovrdbf-does-not-apply-create-table-as-select

Ja, das scheint genau das Problem zu beschreiben. Mit 7.2 hat es definitiv noch einwandfrei funktioniert.
Ob ich im SQL einen Alias benutze oder gleich die zu lesende Datei anspreche ist einerlei, die Variabilität vorher im CL-Programm die angesprochene Datei oder Bibliothek variabel zu überschreiben geht flöten.

Fuerchau
11-04-24, 11:54
Du sparst dir da halt einen Aufruf, da du den OVRDBF ja nicht mehr brauchst.
Du kannst ja den Create Table nun direkt in das CLP verlegen und mit RUNSQL direkt ausführen.

Außerdem kann man den Create mit einem select ergänzen:

create qtemp/newtable as (
select ....
where
)

Nur wenn man Hostvariablen benötigt kann man dies nur in 2 Schritten erledigen, es sei denn man verwendet einen Execute Immediate.