-
create or replace table
Guten Abend.
Wir wollen unsere
Create Table lib/file as (
select .... from ... where ...) with data
Befehle ersetzen und statt Create ein create or replace verwenden (V7R1)
Da geht nun das "with data" nicht!
Was muß ich stat dessen machen
Danke
Dietlinde Beck
-
... hört sich nach einem Anwendungsfall für eine "materialized Query table" an, die wird einmal erstellt und kann dann mit REFRESH TABLE aktualisiert werden.
D*B
-
Hallo Herr Bender,
Das würde hier warscheinlich zu viel durcheinander bringen.
Ich werde es mal mit den Kollegen durchsprechen.
Geht denn ein "create or replace" nicht, wenn ich gleichzeitig Daten kopieren möchte?
Danke
DiBe
-
Mach das dann in 3 Schritten:
Create or replace Table MyTable ...;
delete from MyTable;
Insert into MyTable select * from MyTable2;
Ggf. mach den Delete vor dem Create or replace.
Der Create or Replace führt einen Alter Table unter Beibehaltung der Daten sowie aller Indizes durch.
Wenn sich deine Spalten geändert haben, verwende eben mehrere Schritte.
-
Verwirrend,
... aber Du must WITH NO DATA angeben, damit die vorhandenen Daten nicht überklatscht werden.
Nur zur Info:
CREATE OR REPLACE in Verbindung mit einem SELECT-Statement kann man auch nutzen, wenn man auf eine Feld-Referenz-Datei referenziert.
Ändert sich die Feld-Referenz-Datei muss man lediglich den CREATE OR REPLACE Table erneut ausführen und erhält so die geänderte Tabelle (mit allen abhängigen Objekten, wie Indices, Views, logische Dateien, Trigger, Constraints etc) ohne dass eine weitere Aktion notwendig ist.
Bei Datei-Erweiterungen oder Änderungen wird lediglich das SELECT-Statement angepasst.
CREATE OR REPLACE unterstützt allerdings nur, das, was der ALTER TABLE unterstützt.
Falls irgendjemand auf die POW3R kommt: Genau das ist das Thema meines Vortrags
Birgitta
-
Beim CREATE OR REPLACE kannst du auch ON REPLACE DELETE ROWS angeben.
Damit werden die Daten auch gleich gelöscht, falls die Tabelle schon existiert.
-
Hallo, guten Morgen zusammen,
es ist ein Ablauf, der in unregelmäßigen Abständen Daten 'copiert' und einer anderen Verarbeitung, teilweise PC, teilweise iSeries, zur Verfügung stellt.
Der alte Ablauf war
drop table
create Table ... with data
Jeweils in einem qmqry Statement, aufgerufen von einem CL, um das drop abzufangen, falls die Datei nicht existiert.
Das wollte ich vereinfachen nach dem Motto:
Wenn sie existiert: überschreibe sie, wenn Sie fehlt: erstelle sie
Wenn create or replace das nicht kann, lass ich es wie es ist. Es sollte ja nur aus den 2 qmqry eins gemacht werden.
Dietlinde Beck
-
Wenn sich das Query nicht ändert, würde ich auch wie von Dieter vorgeschlagen MQTs einsetzen.
Das ist nichts anderes als ein CREATE TABLE den du aber nur 1 mal absetzten musst.
Sollen die Daten Aktualisiert werden, einfach ein REFRESH TABLE TAB1 und fertig.
Damit ersparst du dir dann immer wieder die Tabelle neu zu erstellen.
-
Statt des Create Table kann sich auch durchaus ein Create View lohnen.
Schließlich spart man sich die ganze regelmäßige Kopierarie und das Ergebnis ist immer aktuell.
Eine Kopie der Daten ist doch tatsächlich nur für Spezialfälle wie CPYTOIMPF erforderlich, da der immer noch nicht aus einer View lesen kann. In diesem Fall läuft dann halt der Create explizit z.B. in die QTEMP.
Alle anderen können doch native auf die View zugreifen.
-
Zitat von Fuerchau
Eine Kopie der Daten ist doch tatsächlich nur für Spezialfälle wie CPYTOIMPF erforderlich
Wir verwenden im CPYTOIMPF bereits Views.
Der Grund warum eine Tabelle erstellt wird, könnte auch sein, dass die Daten einige Zeit benötigen. Das kann ich dann vorgelagert laufen lassen und kann dann schnell mit dem Ergebnis arbeiten.
-
Vielen Dank für die vielen gut gemeinten Ratschläge.
Eine view fällt raus, da u.a. COPYTOIMPF (teilweise) benötigt wird.
MQT und dauernd vorhandene Dateien wollen wir auch nicht.
Ok, wir könnten diese nach der Verarbeitung clearen.
Aber da werde ich nichts unternehmen, die bisherige Lösung funktioniert ja
Und wenn vereinfachen durch create or replace nicht möglich ist, lassen wir es.
Vielen Dank für Eure Unterstützung
DiBe
-
Welches Release hast du denn?
Mach doch mal eine Kombination der vorgeschalgenen Lösungen (on replace delete...).
Wenn das noch nicht funktioniert, musst du halt auf euren nächsten Releaseupdate warten.
Similar Threads
-
By malzusrex in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 21-03-16, 14:03
-
By Tonazzo in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 15-10-15, 22:36
-
By KingofKning in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 18-05-15, 13:09
-
By Willi1 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-05-02, 08:38
-
By lorenzen in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 21-03-01, 13:44
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks