[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2008
    Beiträge
    43

    SQL-Script ausführen

    Hallo Ihr,

    wir haben von einem Linux-System ein SQL-Script, welches eine Stored-Procedure auf einer fernen Datenbank ausführt und die Ausgabe in eine Datei umleitet. Wie kann ich so etwas auf der iSeries bewerkstelligen?

    Soweit ich weiß, kann man mit RUNSQLSTM ein Skript ausführen. Kann ich in dem Skript dann auch CONNECT ausführen? Und wie kann ich die Ausgabe umleiten, ohne ein CL-Programm drum herum zu bauen? Oder geht auch alles mit der QShell?

    Danke, Titus

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    da gibt es mehrere Hürden
    - Connect geht nur, wenn die ferne Datenbank DRDA kann und ein Eintrag im RDB vorhanden ist
    - im Script kommt man nicht an ein von einer stored Procedure zurück gegebenes ResultSet dran
    - Ausgaben kann man im Script nicht einfach umleiten

    Das sieht mir eher nach Java aus, aber da müsste man erstmal etwas genauer wissen, was ihr da vorhabt!

    D*B

    Zitat Zitat von Sensonaut Beitrag anzeigen
    Hallo Ihr,

    wir haben von einem Linux-System ein SQL-Script, welches eine Stored-Procedure auf einer fernen Datenbank ausführt und die Ausgabe in eine Datei umleitet. Wie kann ich so etwas auf der iSeries bewerkstelligen?

    Soweit ich weiß, kann man mit RUNSQLSTM ein Skript ausführen. Kann ich in dem Skript dann auch CONNECT ausführen? Und wie kann ich die Ausgabe umleiten, ohne ein CL-Programm drum herum zu bauen? Oder geht auch alles mit der QShell?

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

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Vielleicht wäre auch ein STRQMQRY eine Möglichkeit?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das Problem mit Prozeduren, die Resultsets zurückgeben, hatte wir hier schon mal.
    QMQRY, RUNSQLSTM, embedded SQL unterstützen das nicht.
    Hier ist entweder Java oder ggf. CLI-Programmierung nötig.
    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

  5. #5
    Registriert seit
    Dec 2005
    Beiträge
    7
    Aus RPG heraus ist der Zugriff wohl am günstigsten über das CLI-API zu realisieren. Die SQL/CLI Schnittstelle bietet hier alle benötigten Funktionen.

    - Connection herstellen
    - Script ausführen (Stored Procedure)
    - Ergebnis binden
    - in lokale Datei wegschreiben

  6. #6
    Registriert seit
    Oct 2008
    Beiträge
    43
    Eure Vorschläge sind alle sehr interessant. Mit CL oder RPG würde ich auch sicher etwas hingenommen. Das würde jetzt aber zu lange dauern. Wir haben hier mal weiter experimentiert. Inzwischen bin ich so weit, dass die Prozedur ausgeführt wird:

    Code:
    STRSQH CMD('db2 -x -r db -u dbuser -p dbpass "call generate_ff_data (13501, '02', ';')" | sed -n 's/;/&/p' >  out.txt')
    Leider kommt es nun aber zu einem Problem mit CCSIDs. In der Ausgabedatei erscheint statt der Ausgabe ein SQL-Fehler 57017, der darauf hinweißt, dass eine Konvertierung von CCSID 13488 nach 65535 nicht möglich ist. Jemand ne Idee, wie man das Problem noch löst?

    Titus

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Was soll SQL da auch machen ?
    Du musst die Zieldatei mit einer gültigen CCSID versehen.
    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

  8. #8
    Registriert seit
    Oct 2008
    Beiträge
    43
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Was soll SQL da auch machen ?
    Du musst die Zieldatei mit einer gültigen CCSID versehen.
    Das habe ich auch versucht. Ich habe mit CHGATR die CCSID der vorhandenen Ausgabedatei angepasst. Trotzdem kam der Fehler.

    Titus

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Was für eine Programm rufst du da auf ?
    Vielleicht steht dein Job auf CCSID 65535 und das Programm hat nur beim Lesen der Daten Schwierigkeiten ?
    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

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    lass doch mal die Pipe mit dem Streamfile Editor und die Umleitung in die Datei weg, ob es dann geht (dann liegts an dem sed - der auch eine CCSID Option hat - oder an der Ausgabefile).

    D*B

    Zitat Zitat von Sensonaut Beitrag anzeigen
    Eure Vorschläge sind alle sehr interessant. Mit CL oder RPG würde ich auch sicher etwas hingenommen. Das würde jetzt aber zu lange dauern. Wir haben hier mal weiter experimentiert. Inzwischen bin ich so weit, dass die Prozedur ausgeführt wird:

    Code:
    STRSQH CMD('db2 -x -r db -u dbuser -p dbpass "call generate_ff_data (13501, '02', ';')" | sed -n 's/;/&/p' >  out.txt')
    Leider kommt es nun aber zu einem Problem mit CCSIDs. In der Ausgabedatei erscheint statt der Ausgabe ein SQL-Fehler 57017, der darauf hinweißt, dass eine Konvertierung von CCSID 13488 nach 65535 nicht möglich ist. Jemand ne Idee, wie man das Problem noch löst?

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

  11. #11
    Registriert seit
    Oct 2008
    Beiträge
    43
    Danke für eure Hinweise. Aus bestimmten Gründen haben wir das bisher nicht wieder probiert. Falls es doch noch klappt, melde ich mich nochmal.


    Gruß, Titus

Similar Threads

  1. Dynamisches SQL in einem CL erstellen
    By Sony in forum IBM i Hauptforum
    Antworten: 27
    Letzter Beitrag: 20-07-09, 21:48
  2. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  3. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. SQL-Befehle ausführen ohne SQL auf der Maschine, wie?
    By Carsten in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 15-10-01, 19:53

Berechtigungen

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