[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2014
    Beiträge
    179

    SQL über zwei Partitions

    Hallo Forum,

    ich habe ein SQL, das die Daten von einer zweiten Partition braucht

    1. Partition Firma1 - Kunden
    2. Partition Firma2 - Artikel

    Jetzt möchte ich die auf der Partition Firma2 die Artikel, die zu einer bestimmten Kundengruppe passen über folgendes SQL auslesen
    PHP-Code:
    Select ArtikelBezeichnungMengea.Kundengruppe
       from Mylib
    .Artikel a
       left join Firma1
    .Mylib.Kunden b on a.Kundengruppe b.Kundengruppe
    im WRKRDBDIRE sind beide Partitions eingetragen, so dass beide SQL's auf der Partition Firma2 funktionieren
    PHP-Code:
    select from Mylib.Artikel  funktioniert 
    select 
    from Firma1.Mylib.Kunden funktioniert auch 
    Wenn ich den SQL mit dem Join ausführe, dann bekomme ich folgenden Fehler:

    SQL State: 56023
    Vendor Code: -512
    Message: [SQL0512] Anweisung verweist auf Objekte in mehreren Datenbanken. Ursache . . . . : Die Anweisung verweist auf Objekte, die sich in unterschiedlichen Datenbanken befinden. Die Objekte können entweder explizit qualifizierte Objektnamen oder Aliasnamen sein, die als Verweis auf eine andere Datenbank definiert sind. Diese SQL-Anweisung kann nur auf eine einzige Datenbank verweisen. Eine Anweisung CREATE TABLE AS, die aus einer fernen Datenbank auswählt, kann nicht auf eine Tabelle verweisen, für die eine FIELDPROC definiert ist. Sie kann keine Materialized Query Table definieren. Befindet sich die ferne Datenbank nicht auf einem IBM i-Server, sind INCLUDING-Klauseln nicht zulässig. Fehlerbeseitigung: Vergewissern Sie sich, dass sich alle in der Anweisung verwendeten Objekte in derselben Datenbank befinden. Anschließend die Anforderung wiederholen.


    Hat jemand eine Idee?

    Vielen Dank für eure Unterstützung

    Rainer

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Nunja, in der Theorie ganz nett, in der Praxis natürlich mit Aufwand verbunden.
    Weiteres siehe hier:
    https://www.ibm.com/support/knowledg.../rbal1drdh.htm
    Also ohne Zusatzprodukte geht das nicht.
    Ist ja auch verständlich.
    Um deine Abfrage durchzuführen muss die Join-Tabelle erst mal komplett lokal kopiert werden, dann kann der Join durchgeführt werden, anschließend kann die Kopie verworfen werden.
    Anders macht es z.B. auch nicht SQL-Server (Verbindungsserver) oder z.B. MS-Access.
    Über die Performance darf man sich dann allerdings keine Gedanken machen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Nunja, in der Theorie ganz nett, in der Praxis natürlich mit Aufwand verbunden.
    Weiteres siehe hier:
    https://www.ibm.com/support/knowledg.../rbal1drdh.htm
    Also ohne Zusatzprodukte geht das nicht.
    Ist ja auch verständlich.
    Um deine Abfrage durchzuführen muss die Join-Tabelle erst mal komplett lokal kopiert werden, dann kann der Join durchgeführt werden, anschließend kann die Kopie verworfen werden.
    Anders macht es z.B. auch nicht SQL-Server (Verbindungsserver) oder z.B. MS-Access.
    Über die Performance darf man sich dann allerdings keine Gedanken machen.
    ... dieses verlinkte Produkt leistet das auch noch nicht, da müsste man erstmal permanent remote Kopien pflegen lassen, bevor man mit einem SQL drauf darf. Das Zauberwort heißt hier InfoSphere Federation Server (falls das nicht gerade wieder umbenannt wurde). Da brauchst Du allerdings noch eine nicht-Ei-DB2 und wenn Du die Preise für das Produkt siehst und den Einführungsaufwand, willst Du das nicht mehr haben...

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Ein RPG Programm könnte die ferne Datei per DDMF lesen, ohne dass alle Daten kopiert werden müssten.
    Evtl. ist dieser Ansatz einfacher?

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... das DDMF kann noch erheblich weniger als ein SQL connect zur remote Datenbank!!!
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Nun, wenn du per sequentiellem Read die Daten selektierst und lokal zwischenspeicherst, hast du trotzdem die gesamte Datei kopiert, auch wenn nicht alles gespeichert ist.
    DDMF hat diverse Limits:
    - Kein Zugriff per Schlüssel (SETLL, ...)
    - Kein Zugriff per SQL
    - Ausschließlich statische Definitionen zur Compilezeit
    - max. 16 parallele Opens per Job
    - max. 256 parallele Verbindungen per Zielsystem
    Und wie Dieter schon sagte, SQL kann erheblich mehr.
    Du musst dir halt nur die Mühe machen, deine SQL's selber zu zerlegen und die Daten aus den anderen Systemen partiell laden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    May 2007
    Beiträge
    295
    Also ich hab folgenden Workaround() im www gefunden:
    https://www.itjungle.com/2012/08/08/fhg080812-story01/
    Ich habs aber nicht probiert da ich keine zweite dastehen hab :-)

    Grtx!
    Christian
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das behebt nicht dein Problem, dass Queries dieser Art nicht optimierbar sind.
    D.h., dass deine UDTF für die Satzauswahl per Parameter zuständig ist um dann ein Subset an Daten zu liefern, dass dann per Where/Join-Klauseln ggf. weiter eingeschränkt wird.

    Einfacher sind da eher Konzepte, für ausgewählte Tabellen mit Replizierung zu arbeiten. M.a.W., die benötigten Daten der jeweils anderen Systeme lokal zu halten und regelmäßig zu aktualisieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... viel Lärm um nichts, das ging mit QMQRY schon solange ich denken kann:
    1. QMQRY selektiert Daten von remote1 und schreibt in lokale Tabelle
    2. QMQRY selektiert Daten von remote2 und schreibt in lokale Tabelle
    3. UDTF lässt QMQRY1 und QMQRY2 laufen und joined mit lokalen Tabellen, wie immer es will.

    Immer wieder erstaunlich, was man da an die DB2 Clientel immer wieder als sensationell neu verkauft.

    D*B

    PS: und schneller ist das wahrscheinlich auch noch...
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    @Dieter: Du machst es dir manchmal zu einfach.
    Wenn es neues gibt will es auch verwendet werden.
    Telefonieren konnte ich schon mit meinem Wählscheiben-Telefon und der Klingelton (Nostalgie) war schon drin. Ich brauche heute immer noch kein Smartphone.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. IBM i Partitions-Nr. via Programm ermitteln
    By B.Hauser in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 16-01-15, 16:20
  2. RSTOBJ von zwei Bändern
    By MB in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 16-05-03, 13:26
  3. Umfrage: Splittung des Hauptforums in zwei Unter und ein Hauptforum
    By Burgy Zapp in forum Intern - Hilfe - Feedback - Tests-Forum
    Antworten: 20
    Letzter Beitrag: 12-07-02, 11:52
  4. Datenbank auf zwei Systemen
    By KB in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 16-05-01, 11:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •