[NEWSboard IBMi Forum]
Seite 5 von 5 Erste ... 4 5
  1. #49
    Registriert seit
    Mar 2006
    Beiträge
    98
    so etwa:

    Select Ordinal_Position as RowKey, cast(Element as varchar(2000) ccsid 1208) from Table(SysTools.Split Cast((Get_clob_From_File('/chguser/xxx/upload/idn_tek2.csv'), x'0D25') as CLOB(2M) CCSID 1208) ) a
    Where Trim(Element) > '' ;

    Fehler
    SQL State: 42601
    Vendor Code: -199
    Message: [SQL0199] Schlüsselwort CAST nicht erwartet. Gültige Token: (. Ursache . . . . : Schlüsselwort CAST wurde an dieser Stelle nicht erwartet. Im Schlüsselwort CAST wurde ein Syntaxfehler erkannt. Die Teilliste gültiger Token ist (. Bei dieser Liste wird vorausgesetzt, dass die Anweisung bis zum unerwarteten Schlüsselwort richtig ist. Der Fehler liegt möglicherweise an anderer Stelle der Anweisung, die Syntax scheint aber bis zu dieser Stelle korrekt zu sein. Fehlerbeseitigung: Die SQL-Anweisung im Bereich des angegebenen Schlüsselworts untersuchen. Möglicherweise fehlt ein Doppelpunkt oder ein SQL-Begrenzer. Bei SQL müssen reservierte Wörter begrenzt werden, wenn sie als Namen verwendet werden sollen. Die SQL-Anweisung korrigieren und die Anforderung wiederholen.



    Bei: ccsid 1174
    cast(Element as varchar(2000) ccsid 1174)
    Fehler:
    SQL State: 22522
    Vendor Code: -189
    Message: [SQL0189] ID für den codierten Zeichensatz 1174 ungültig. Ursache . . . . : Die ID für den codierten Zeichensatz (CCSID = Coded Character Set Identifier) 1174 ist aus einem der folgenden Gründe ungültig: -- Die CCSID ist keine EBCDIC-CCSID. -- Die CCSID wird vom System nicht unterstützt. -- Die CCSID ist für die Datenart nicht gültig. -- Wird die CCSID für Grafikdaten angegeben, muss die CCSID eine DBCS-CCSID sein. -- Wird die CCSID für UCS-2- oder UTF-16-Daten angegeben, muss die CCSID eine UCS-2- oder UTF-16-CCSID sein. -- Wird die CCSID für XML-Daten angegeben, muss sie eine SBCS- oder Unicode-CCSID sein. DBCS oder der Wert 65535 ist nicht zulässig. -- Wird die CCSID für CLOB-, DBCLOB- oder DATALINK-Daten angegeben, darf die CCSID nicht 65535 sein. -- Wird die CCSID für eine Ergebnisspalte der Funktion XMLTABLE angegeben, darf die CCSID nicht 65535 sein. -- Sind mehrere DATALINK-Spalten mit FILE LINK CONTROL vorhanden, müssen alle dieselbe CCSID haben. -- Die Klausel NORMALIZED kann nur für eine UTF-8- oder UTF-16-CCSID angegeben werden. Fehlerbeseitigung: Sicherstellen, dass alle CCSID-Werte in der Anweisung vom System unterstützt werden und für die Datenart zulässig sind. Eine Liste der gültigen CCSID-Werte enthält die Themensammlung zu DB2 for i SQL Reference in der Kategorie Datenbank im IBM i Information Center unter http://www.ibm.com/systems/i/infocenter/.




    Bei: ccsid 1174
    cast(Element as varchar(2000) ccsid 273) <-- keine umlaute

  2. #50
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Split ist eine Funktion und da gehört der Ausdruck in Klammern: Split(cast...).
    Aber ich weiß wirklich nicht, warum man es immer so kompliziert machen will, wenn ILERPG> das native eben auch kann. Da funktioniert das auch besser. Man hat mit CRLF nichts zu tun, vor allem da XML's CRLF nicht anthalten müssen.
    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. #51
    Registriert seit
    Mar 2006
    Beiträge
    98
    Die Datei in IFS hat 1252
    wie muss ich die Atributte anpassen?

    ich versuche es per RDI zu machen nur so kann ich die Zeichen richtig alle sehen.

    Job hat CCSID 1141

  4. #52
    Registriert seit
    Mar 2006
    Beiträge
    98
    ich richtig, habe ich nicht gesehen sorry:


    > Select Ordinal_Position as RowKey, cast(Element as varchar(2000) ccsid 1208) from Table(SysTools.Split (Cast(Get_clob_From_File('/chguser/xxx/upload/idn_tek2.csv'), x'0D25') as CLOB(2M) CCSID 1208) ) a Where Trim(Element) > ''

    SQL State: 42601
    Vendor Code: -104
    Message: [SQL0104] Token , ungültig. Gültige Token: AS. Ursache . . . . : Bei Token , wurde ein Syntaxfehler entdeckt. Token , ist kein gültiges Token. AS ist eine Teilliste gültiger Token. Diese Liste geht davon aus, dass die Anweisung bis zu diesem Token korrekt ist. Es kann eine frühere Stelle in der Anweisung fehlerhaft sein, aber bis zu dieser Stelle scheint die Syntax gültig zu sein. Fehlerbeseitigung: Einen der folgenden Schritte durchführen und die Anforderung wiederholen: - SQL-Anweisung im Bereich des Token , überprüfen. Anweisung korrigieren. Der Fehler kann ein fehlendes Komma oder Anführungszeichen sein, er kann in einem falsch geschriebenen Wort oder in der Anordnung der Klauseln begründet sein. - Ist das fehlerhafte Token , die Anweisung korrigieren, da sie mit einer ungültigen Klausel endet.

  5. #53
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Die Syntax ist immer noch nicht korrekt.
    Die richtige Syntax müsste so aussehen:

    Code:
    Select Ordinal_Position As Rowkey,
           Cast(Trim(Element) As Varchar(2000) Ccsid 1208)
       From Table (
             Systools.Split(
                Cast(Get_Clob_From_File('/chguser/xxx/upload/idn_tek2.csv') As Clob(2M) CCSID 1208),
                 x'0D25'
             )
          ) A
    Where Trim(Element) ...
    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

  6. #54
    Registriert seit
    Mar 2006
    Beiträge
    98
    nach dem ich dem job auf Translate ccsid 65535 geändert habe hat es funktioniert.

    Aber die umlaute sind immer noch nicht da.

    Click image for larger version. 

Name:	clob.JPG 
Views:	13 
Size:	95,6 KB 
ID:	615

  7. #55
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Natürlich sind die Umlaute da. Sie sind nur in UTF8 kodiert und so dann nicht zu sehen.
    Das sind die komischen Sonderzeichen die da im Text zu sehen sind.
    Wenn du die Daten nun im Programm verarbeiten willst, musst du 1208 in 1200 casten und im ILERPG das Feld vom Typ "C" definieren (UCS2).

    Warum machst du das (nochmal) so kompliziert?
    Laut deinen Daten handelt es sich um eine CSV-Datei.
    D.h., du erstellst eine PF (SQL oder DDS) in passender Definition (Zeichen, Zahlen, Datum) und importierst dann einfach per CPYFRMIMPF.
    Dann hast du die Daten fertig für die Verarbeitung.
    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. #56
    Registriert seit
    Mar 2006
    Beiträge
    98
    Hallo,

    vielen Dank.
    Ich habe noch nicht probiert.

    Warum so komliziert... Ich würde mal gerne CSV Datei direkt lesen ohne irgendwlscher Dateien wo man die Daten vorher reinkopieren muss.
    Lesen
    Verarbeiten
    Fertig..

  9. #57
    Registriert seit
    Mar 2006
    Beiträge
    98
    Click image for larger version. 

Name:	clob.JPG 
Views:	12 
Size:	347,7 KB 
ID:	616
    Es wird bei SQL trotz dem immer noch falsch umgesetzt. Siehe Bild.
    Ich glaube, ich mache es per CPYFRMSTMF ich denke das es zuverässiger ist.

  10. #58
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wenn ich das Bild ansehe, so wird da ein UTF8-Code für ein Umlaut ausgegeben.
    Ggf. wird bei der SQL-Anzeige nicht von UTF8 in eine lesbare Anzeige umgewandelt.

    Außerdem habe ich oben schon mal geschrieben, dass der CPYFRMIMPF das generell besser kann:
    Korrekte Typwandlung in
    - Dezimal mit/ohne Vorzeichen und korrekten Nachkomma
    - Datum ISO/EUR...
    - NULL's
    - Trim Blanks Anfang/Ende
    - Entfernen Kopfzeile
    - Korrekte Behandlung Stringdelimiter, z.B. "Äpfel;Birnen" fürt bei deinem SQL zu Fehlern.

    Bevor ich mir da selber die Finger breche nehme ich gleich den CPYFRMIMPF, zumal der auch noch eine Fehlerprotokoll-Datei kann.
    Mit deinem Problem wäre ich in 10 Minuten fertig;-).
    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. 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
  •