[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Apr 2011
    Beiträge
    29

    SQL: Result als Datei speichern

    Hallo zusammen,

    ich bin neu in der AS/400 Welt und arbeite mich gerade ein.
    Ich möchte das Ergebnis einer Abfrage in eine Datei speichern und diese dann auf dem Win-PC ansehen.

    Dazu habe ich in den Sitzungsattributen (F13) eingestellt, das die SELECT-Ausgabe in eine Datei gehen soll. Hat funktioniert, ich kann hinterher SELECT * FROM DATEI machen und das Ergebnis ist was ich erwartete.

    Diese Datei hat die CCSID 13488. Übertrage ich die Datei (per ftp im bin Modus, das ist die einzige Möglichkeit an die datei ran zu kommen) an meinen PC, dann zeigt mein Editor (Notepad++) nicht an, was ich erwarte, obwohl er UCS2 können soll. Die Daten können durchaus Unicode enthalten, UCS2 ist also so falsch nicht.

    Bis hierher erstmal danke für's lesen ;-)
    Hier meine Frage:
    Wie kann ich diese Datei in ASCII oder UTF-8 konvertieren?

    Danke und Gruß
    Marty

  2. #2
    Registriert seit
    Aug 2006
    Beiträge
    2.074
    Warum machst Du bin wenn Du ASCII haben willst?
    Außerdem ist diese Codepage evtl. nicht optimal, aber da kennt sich Fürcherau besser aus

    GG

  3. #3
    Registriert seit
    Apr 2011
    Beiträge
    29
    Zitat Zitat von KingofKning Beitrag anzeigen
    Warum machst Du bin wenn Du ASCII haben willst?
    Vergessen zu schreiben: Wenn ich ascii nehme kommt folgende Fehlermeldung:
    Unable to convert data from CCSID 13488 to CCSID 819: reason 3021

  4. #4
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Hallo Marty,
    überträgst du die Tabelle direkt oder kopierst du sie vorher ins IFS?

    Mit der CAST-Funktion in SQL kannst du alle Unicode-Felder in deine Landessprache (CCSID) konvertieren.
    PHP-Code:
    select cast (spalte1 as CHAR (100ccsid 273from test1 

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    FTP ist da leider eine schlechte Lösung.
    ASCII-Übertragung entfernt Unicode (sieht Tabelle 819, übrigens per CHGFTPA einstellbar) und Binärübertragung sendet die Datei mit der internen AS/400-Struktur.

    Wenn du die Daten vernünftig auf dem PC haben willst, empfielt sich hier der Umweg über das IFS mittels CPYTOIMPF in UTF-8, z.B:

    CPYTOIMPF FROMFILE(MYLIB/MYFILE)
    TOSTMF('/Home/MyHome/MyFile.txt')
    MBROPT(*REPLACE)
    STMFCODPAG(1208)
    RCDDLM(*CRLF)
    DTAFMT(*DLM)
    STRDLM(*DBLQUOTE)
    RMVBLANK(*TRAILING)
    FLDDLM(';')

    Dann kann die Datei mit Notepad oder Excel gelesen werden.
    Einfacher gehts dann noch mit Excel und Datenimport über "Daten->Externe Daten->Neue Abfrage" umd ggf. Bearbeitung in MS-Query.

    FTP ist für Unicodedaten aus einer PF nicht geeignet.
    IFS-Dateien kannst du natürlich problemlos übertragen.
    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

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Da ich weder weiß warum und wieso Du eine Tabelle direkt auf dem PC anschauen willst ...

    Mit dem iSeries Navigator - Datenbanken - Eine SQL Prozedur ausführen, kannst Du das Ergebnis einer SQL-Abfrage auch direkt als *.csv oder *.xls abspeichern.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    Registriert seit
    Apr 2011
    Beiträge
    29

    Danke!

    Danke sehr, es funktioniert! Genau was ich gesucht habe :-)
    Jetzt noch schedulen und dann bin ich fertig, yeah!

  8. #8
    Registriert seit
    Apr 2011
    Beiträge
    29

    Danke!

    Birgitta: Es geht im die Erzeugung einer Schnittstellendatei, die automatisiert jede Nacht erzeugt werden soll...

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das Problem für Batch ist aber noch die Anmeldung an der iSeries!
    Damit kein Logon-Bild erscheint musst du per "cwblogon" Benutzer und Kennwort in den Cache schreiben, das Ganze also in ein .BAT packen.
    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
    Apr 2011
    Beiträge
    29
    @Fuerchau: Janein, ich werde den Job Scheduler der AS400 nutzen um mittels QM in ein File zu schreiben, dieses dann ins IFS zu kopieren und das wars. Meine Zielperson kann sich die Daten dann vom IFS abholen, da endet mein Part des Prozesses.

    Hab mir das Scheduler-Handbuch runtergeladen und werde mir das zu Gemüte führen, kann ja so schwer nicht sein (hoffe ich).

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ich weiß ja nicht, welche Lösung du gewählt hast.
    Ansonsten ist das wirklich einfach.
    Kleines CLP dass den STRQMQRY mit Ausgabedatei un den anschliessenden CPYTOIMPF aufruft.

    Das CLP dann per ADDJOBSCDE eintragen. Per WRKJOBSCDE kann der Eintrag auch geändert werden.

    Wichtig ist nur die korrekte JOBD für die Bibliotheksliste zu wählen oder diese im CLP mittels CHGLIBL vorher setzen.

    Beachte bitte noch folgendes:
    Die IFS-Datei gehört immer dem Ersteller, *PUBLIC ist excluded.
    Per CHGAUT musst du anschließend die Berechtigung für den Abholer noch erteilen.
    Witzigerweise muss man für sich selber auch die OBJAUT auf *ALL setzen, sonst darf man die eigene Datei nicht löschen (z.B. beim ersetzen).
    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

  12. #12
    Registriert seit
    Apr 2011
    Beiträge
    29
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Ich weiß ja nicht, welche Lösung du gewählt hast.
    Ansonsten ist das wirklich einfach.
    Kleines CLP dass den STRQMQRY mit Ausgabedatei und den anschliessenden CPYTOIMPF aufruft.
    Genau so wollte ich das machen.

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das CLP dann per ADDJOBSCDE eintragen. Per WRKJOBSCDE kann der Eintrag auch geändert werden.
    Gerade im Handbuch gelesen :-)

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Wichtig ist nur die korrekte JOBD für die Bibliotheksliste zu wählen oder diese im CLP mittels CHGLIBL vorher setzen.
    Oh, das hätte ich jetzt vergessen - Danke!

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Beachte bitte noch folgendes:
    Die IFS-Datei gehört immer dem Ersteller, *PUBLIC ist excluded.
    Per CHGAUT musst du anschließend die Berechtigung für den Abholer noch erteilen.
    Witzigerweise muss man für sich selber auch die OBJAUT auf *ALL setzen, sonst darf man die eigene Datei nicht löschen (z.B. beim ersetzen).
    Ach _deswegen_ ging das gestern nicht ;-)

    Tolles Forum hier, vielen lieben Dank!
    Marty

Similar Threads

  1. Editcode in SQL beschriebener Datei ?
    By ILEMax in forum IBM i Hauptforum
    Antworten: 16
    Letzter Beitrag: 24-01-07, 10:04
  2. Probleme mit SQL
    By steven_r in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 26-09-06, 15:51
  3. SET RESULT SETS
    By KM in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 22-05-06, 15:22
  4. Embedded SQL in Modul - Nach Insert bleibt Datei gesperrt (*EXCL)
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 09-12-04, 13:21
  5. SQL, Datei mit sich selber verknüpft
    By SBaum in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 28-11-01, 12:55

Berechtigungen

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