-
SQL Zugriff auf 2 Systeme
Hallo,
wir haben 2 IBM i Systeme. Ich würde gerne per SQL Daten von dem einen System auf das andere übertragen. Konkret würde ich gerne eine Tabelle auf System 1 lesen und die Daten in eine gleichartige Tabelle auf dem System 2 schreiben.
Wenn die beiden Tabellen auf einem System in 2 unterschiedlichen Bibliotheken ständen, wäre das ja kein Problem und mit einer SQL-Anweisung machbar. So etwas geht wohl nicht, wenn die beiden Tabellen auf unterschiedlichen Systemen sind, oder? Mit einer DDMF hat es schon mal nicht geklappt.
Natürlich gibt es Wege, mit denen das geht. Z.B. die Tabelle sichern und auf dem anderen System wieder einspielen. Das hat aber den Nachteil von Sperrungen.
Oder mit einem RPG-Programm, dass mit SET CONNECTION arbeitet. Dann müsste ich es jedesmal speziell programmieren.
ich würde das gerne im interaktiven SQL ausführen. Geht das?
Dieter
-
... mit einigen Einschränkungen ist da was machbar. Mit 3 part alias kann man einen remote select per insert into in eine lokale Datei leiten, dabei darf aber der remote select keine direkte Referenz ( in der where clause oder join clause) auf lokale Daten nehmen. Das geht schon seit (gefühlt) 1870 mit qmqry mit Angabe eines lokalen outfiles.
D*B
-
Per WRKRDBDIRE das Zielsystem als Datenbank registrieren.
Dann kann ein kleines ILERPG per Cursor in eine DS lesen und aus der DS einen Insert machen.
Der Zugriff besteht dann aus 3 Teilen:
Entweder: select * from RDBNAME.SCHEMA.TABLE
oder: insert into RDBNAME.SCHEMA.TABLE values (: Ds)
Gefühlt mache ich das schon seit R4V5 so.
Ein "Insert into ... Select from ..." funktioniert nicht über 2 Systeme.
Übrigens: Ich habe da mal ein kleines JavaCopy geschrieben, dass genau dies macht. Es werden lediglich Quell und Zieltabelle angegeben.
-
Schau dir mal DBeaver an, wenn es interaktiv sein soll. Da kannst du das Ergebnis exportieren und als Ziel auch eine andere Datenbankverbindung wählen.
Gruß,
Manuel
-
Zitat von Fuerchau
Ein "Insert into ... Select from ..." funktioniert nicht über 2 Systeme.
wie wärs mit:
STRQMQRY OUTPUT(*OUTFILE)
OUTFILE(MYLIB/MYFILE)
RDB(MYRDB)
genau das (und nicht mehr) kann sql seit ein paar releases auch mit three part alias
INSERT into mylib.myfile
select ... from myrdb.mylib.myfile
login daten kann man da auch noch mit addsvraute hinterlegen.
D*B
-
Das Problem von QMQRY ist, dass nicht mehr als 255 Spalten unterstützt werden.
Aber wenn es reicht...
-
... die three part alias variante hat diese Einschränkung nicht. Der Punkt ist allerdings bei allen Billigheimer-Varianten, dass das mit constraints schief gehen kann (Satz bereits vorhanden etc. ...)
D*B
-
Vielen Dank für eure Antworten und Ideen.
Es ist mir klar, dass es diverse Wege gibt, wenn man Programmierung nutzt. Ich muss ab und zu mal Kleinigkeiten zwischen unserem Testystem und dem Echtsystem hin und her kopieren. Das sind immer sehr individuelle Dinge, die ich am schnellsten im interaktiven SQL (wir nutzen dbVisualizer) machen könnte, wenn man die beiden System so ansprechen könnte, wie man das bei unterschiedlichen Bibliotheken machen würde.
Ich glaube, die Idee von Dieter Bender geht in die Richtung, die mir vorschwebt. Ich muss da mal etwas forschen, wie kompliziert das ist.
LG,
Dieter
-
Kompliziert ist das nicht. Es geht da aber nur per QMQRY, da die Ausgabedatei nicht per 1-Schritt-SQL gefüllt wird.
Du kannst dir dafür auch ein CMD erstellen und den Rest im CLP zusammenstoppeln.
Da QMQRY einen Parameter bis 54 Zeichen kann, reicht da ein "&P1", bei mehr dann halt "&P1 &P2".
Immerhin kann man ja nun im CLP auch direkte per RUNSQL dann den "Insert .. Select .." ausführen.
-
Ach so, ich kann also nicht einfach "etwas" einrichten und dann mit interaktivem SQL (z.B. unser dbVisualizer) per qualifiziertem Namen auf beide Systeme gleichzeitig zugreifen?
Dann hat sich das für mich erledigt.
-
Zitat von Fuerchau
Kompliziert ist das nicht. Es geht da aber nur per QMQRY, da die Ausgabedatei nicht per 1-Schritt-SQL gefüllt wird.
... Baldur, zum wiederhoilten Male: das ist Unfug!!!
-
Zitat von dschroeder
Ach so, ich kann also nicht einfach "etwas" einrichten und dann mit interaktivem SQL (z.B. unser dbVisualizer) per qualifiziertem Namen auf beide Systeme gleichzeitig zugreifen?
Dann hat sich das für mich erledigt.
... nochmal zum mitschreiben:
mit einem SQL Statement kannst Du auch mit STRSQL Daten von einem (in Worten: einem!) remote System selektieren und in einer lokalen Datei per insert oder create Table speichern. Das geht mit allen SQL Frontends der AS/400 (STRSQL, embedded SQL, etc.). Die remote Tabelle(n) wird dabei mit 3-teiligem Namen angesprochen (system.lib.table).
Damit kann man nur Daten holen und nicht schieben!
Von einem dritten System aus, sei es eine AS/400, oder ein anderes System, ghet das so nicht, da wären in einem SQL Statement 2 verschiedene Systeme angesprochen, was DB2/400 nicht kann.
Was mit DB-Fischer (oder wie das heißen mag) geht, hängt von dem Tool ab. Bei SQuirreL und DBeaver, kann man das Ergebnis von einem select einer Verbindung in einer Tabelle einer anderen Verbindung speichern.
D*B
Similar Threads
-
By fedcba in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 15-10-21, 16:37
-
By marco_drost in forum NEWSboard Server Job
Antworten: 0
Letzter Beitrag: 06-08-21, 12:06
-
By GAusthoff in forum NEWSboard Server & Hardware Markt
Antworten: 0
Letzter Beitrag: 14-02-18, 12:38
-
By berg01796 in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 15-11-16, 11:55
-
By loeweadolf in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 06-10-14, 14:25
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