[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2021
    Beiträge
    26
    Dank eurer Hilfe und Unterstützung , vor allem auch von Britta , konnten wir zwischenzeitlich , die Daten aus dem IFS , qualifiziert in eine CLOB-Definierte File laden . Wir haben , nativ ( direkter SQL-Aufruf ) , auch von einem Fileserver , entsprechende XML-files laden und weiterverarbeiten können .
    In einem SQLRPG ( embedded ) , klappt der Aufruf , mit entsprechendem qualifiziertem VALUE auch ohne Probleme . siehe hier das Beispiel :
    exec sql insert into xx.xx values(get_clob_from_file('/home/geschi/test/clob/xxxxxxx.xml'))
    wenn die file aber auf einem fileserver liegt , dessen pfad und filebezeichnung über 100 stellen lang ist, muss der Pfad mit einer Variablen angegeben werden. den pfad mit der entsprechenden File, können wir zusammenknoten. nur wie fügen wir, den Pfad als variable mit variabler länge korrekt in den SQL-Aufruf ein?
    danke vorab für eure Hilfe.

  2. #2
    Registriert seit
    Jan 2021
    Beiträge
    26
    und noch eine weitere Frage , wie debugge ich das SQLRPG , um die SQL-Anweisung zu prüfen und schrittweise den Programmfortschritt zu prüfen . mit *source in den PRE-compiler , hatte ich lediglich die RPG-Anweisungen prüfen können und , da der aufruf interaktiv erfolgte , im LOG einige Infos ...

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.754
    Zu 1:
    dcl-s MyFileName varchar(256);
    exec sql insert into xx.xx values(get_clob_from_file(: MyFileName))

    zu 2:
    Ganz normal mit Debug(*source) und dann STRDBG oder über iseries Navigator:
    https://www.ibm.com/support/pages/us...ries-navigator
    Hier kann man dann mit F15 (glaube ich) auf verschiedene Sichten (Quelle, SQL, Liste) umschalten.
    Die SQL's werden in call 'QSQxxx' umgesetzt.
    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
    Jan 2021
    Beiträge
    26
    zu1 , dies hatte ich probiert . Aber meine VAR hat Folgeleerstellen , gefüllt sind die ersten 112 stellen, der rest ist leer . beim ausführen erhalte ich einen Fehler zurück . wenn die VAR mit 112 länge definiert ist , klappt es .
    kann ich die länge im SQL mitgeben ?

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Entferne doch einfach die (evtl.) führenden und folgenden *Blanks:
    Code:
    exec sql insert into xx.xx values(get_clob_from_file(Trim(: MyFileName)));
    Birgitta
    Birgitta Hauser

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

  6. #6
    Registriert seit
    Jan 2021
    Beiträge
    26
    funktioniert .. klasse ..
    Super, vielen Dank ..

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.754
    Den SQL-trim kann man sich eben sparen wenn man varchar verwendet.
    Wenn allerdings das Quellfeld nicht varchar ist, kann man auch per

    MyFileName = %trim(MyPath) + '/' + %trim(MyName);

    verwenden.
    Es gibt halt viele Wege zu SQL;-).
    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
    Jan 2007
    Beiträge
    1.015
    Ich habe mir angewöhnt, "varchar" Felder IMMER initialisiert zu definieren und/oder zur Sicherheit vorgängig einen clear darauf zu setzen. Dann klappt es auch mit der Feldlänge.
    kf

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.754
    Das nützt aber nichts bei einer Übertragung von Char in Varchar. Da werden die Blanks halt mitgeschleift.
    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
    Jan 2021
    Beiträge
    26
    Hallo Mitglieder , habe eine Nachfrage dazu und aus Vereinfachungsgründen , nicht ein neues Thema erstellt . Die Frage/Problem welches ich habe und sich jetzt zeigte ist , dass beim laden der XML , die Umlaute nicht korrekt umgesetzt werden . Ich weiß , dies hat was mit der CCSID zu tun , was ich nicht weiß ist , wie ich dies einstellen kann in dem SQLRPG , dass die Umlaute ( üäö usw. ) ebenfalls korrekt empfangen und in die CLOB_File eingestellt werden . Danke für erue Hilfe .. PS: alles andere klappt mit eurer Hilfe hervorragend ..

  11. #11
    Registriert seit
    Jan 2021
    Beiträge
    26
    Im zu ladenden XML-File steht im Header :

    < ?xml version = "1.0" encoding="UTF-8"?>

    zur Info ...

Similar Threads

  1. Mit dem Bagger durch die Eifel oder wie debugge ich eine SQL Prozedur
    By KingofKning in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 04-11-19, 08:59
  2. mehrere Spoolfiles in eine Datei
    By programmer400 in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 26-07-17, 11:58
  3. Antworten: 10
    Letzter Beitrag: 14-12-16, 16:45
  4. verschiedene Jobs gleiche Datei, schreib / lese konflikt?
    By dibe in forum NEWSboard Programmierung
    Antworten: 20
    Letzter Beitrag: 25-02-16, 16:33
  5. Antworten: 3
    Letzter Beitrag: 20-12-13, 10:27

Berechtigungen

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