[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Nov 2020
    Beiträge
    334
    Du musst die Variable qualifiziert mit der Lib angeben. Ansonsten sucht er sie (glaube ich) über den PATH (nicht LIBL) ... bin mir aber jetzt nicht mehr sicher.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Welche Fehlermeldung gibt es denn?
    I.d.R. scheitert es dann, wenn der Job in CCSID 65535 läuft.
    Die SQL-Prozedur wird in C erstellt.
    Konstanten werden nicht umgewandelt, Variableninhalte jedoch von der JOB-CCSID in die Ziel-CCSID.
    Wenn der Job auf Hex steht, weiß SQL nicht von welcher CCSID in UTF8 umgewandelt werden soll.
    Dies sollte mit eentsprechender Meldung im Joblog stehen.
    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
    Feb 2001
    Beiträge
    20.254
    Nachtrag:
    Wenn du eine IFS-Datei zeilenweise mit SQL schreiben willst, musst du dich auf arge Performancenachteile einstellen.
    Jeder IFS-Write macht einen Open, Pos, Write, Close, Update Header im IFS.
    Bei einem Test habe ich festgehstellt, dass ca. 10 Writes / Sekunde funktionieren.

    Empfehlung hier ist, die Daten nach Möglichkeit in einer Variablen vom Typ CLOB sammeln, z.B. per LISTAGG um sie dann mit einem Durchgang zu schreiben.

    Schneller war das Verfahren allerdings immer noch, die Daten in eine Tabelle zu schreiben und dann per CPYTOSTMF oder CPYFRMIMPF in einem Rutsch zu schreiben.
    Bei unserem Test z.B. statt 30 Sekunden für 300 Zeilen, nur noch 1 Sekunde.
    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

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.877
    Du musst die Variable als VARCHAR definieren ... und sicherheitshalber solltest Du auch bei der Parameter-Übergabe eventuelle führende/folgende Blanks abtrimmen.

    Code:
    declare gblstring Varchar(256);
    
    set gblstring = '/mypath/myfile.html';
    
    CALL QSYS2.IFS_WRITE_UTF8(
                        PATH_NAME => Trim(gblstring),
                        LINE => 'xxx',
                        OVERWRITE => 'REPLACE',
                        END_OF_LINE => 'CRLF') ;
    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

  5. #5
    Registriert seit
    Jun 2009
    Beiträge
    131
    Danke an alle für die Hilfe!

    @Fuerchau: CCSID's vom Job und den Variablen waren schon alle korrekt gesetzt. Danke für den Hinweis auf die Performance, das check ich mal aus.

    @Birgitta: Danke für den Tip Varchar zu nehmen, das ist's wohl schlussendlich gewesen.

Similar Threads

  1. SQL Stored Procedure mit Dateinamen in einer Variablen aufrufen
    By Erol in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 20-04-20, 11:57
  2. Antworten: 2
    Letzter Beitrag: 19-02-16, 10:01
  3. SQL - Select mit variablen Feldnamen
    By Tobse77 in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 25-07-07, 11:30
  4. SQL-Fehler -514 beim Aufruf eines variablen SQL über Stored Procedure
    By HDPSTANEKE in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-06-07, 14:33
  5. SQL mit variablen Tabellennamen
    By THH in forum NEWSboard Programmierung
    Antworten: 18
    Letzter Beitrag: 19-10-06, 14:16

Tags for this Thread

Berechtigungen

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