[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Apr 2002
    Beiträge
    32
    Vielen Dank für die schnelle Antwort.

    Ich habe versucht in einer Testumgebung die Schritte von Fuerchau nachzuvollziehen.

    So richtig funktioniert es aber nicht.

    Ich bin nicht so vertraut mit dem SQL und der "cast" Anweisung und verstehe eigentlich auch nicht, wieso einzelne Felder angesprochen werden müssen.

    Kann die Umsetzung von CCSID 500 auf 870 nicht über die ganze Tabelle erfolgen ?

    Bei meinem Test versuche ich die Tabelle mit CCSID 870 und dem Befehl CPYTOIMPF die Daten in das IFS zu kopieren mit folgendem Befehl:
    CPYTOIMPF FROMFILE(TESTLIB/TESTFILE) +
    TOSTMF('/MXX/BYYY/Test.txt') +
    MBROPT(*REPLACE) STMFCODPAG(1251)
    RCDDLM(*CRLF) DTAFMT(*FIXED)

    Leider gibt es folgende Abruch-Nachricht:
    Nachricht . . . : Zeichenumsetzung zwischen CCSID 870 und CCSID 1251
    ungültig.
    Ursache . . . . : Es wurde versucht, eine Zeichen- oder Grafikumsetzung für
    nicht verträgliche Daten durchzuführen. Eine Umsetzung zwischen CCSID 870
    und CCSID 1251 ist nicht definiert.
    Ist eine CCSID 65535, ist die andere CCSID eine Grafik-CCSID. Die
    Umsetzung zwischen der CCSID 65535 und einer Grafik-CCSID ist nicht definiert.

    Woran kann das liegen ?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Entschuldigung, 1251 ist kyrillisch, 1250 ist Latin-2 passend zu 870 .

    Aber wie du siehst, lehnt die AS/400 eine Konvertierung ab, wenn es nicht passt.

    Man kann zwar eine FROMCCSID angeben, die gilt aber nur, wenn die Datei *HEX hat.
    Da deine Quelle aber 500 ist, musst du eben per SQL erst in 870 konvertieren.

    Nun zum generellen Problem:
    Vom Terminal mit 870 über den Job (500 oder 65535) zur DB (500) erfolgt keine Umsetzung.
    Würdest du den Job auf 870 passend zum Terminal setzen, könntest du die Datei nicht öffnen, da 500 zu 870 nicht kompatibel ist.
    Somit sind die Daten in der DB als 500 markiert.
    Codewandlung findet nur statt, wenn es passt und 65535 nicht im Spiel ist.

    Durch dein Umkopieren und den doppelcast werden die Daten nicht gewandelt (inner Cast auf 65535) und beim Insert in die 870-Tabelle auch nicht (outer Cast von 65535 auf 870).

    Somit kann der CPYTOIMPF nun von 870 in 1250 ausgeben.

    In Windows mit 1252 kannst du dir die Daten dann leider nicht ansehen.
    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
    Apr 2002
    Beiträge
    32
    Hallo,
    Danke für die ZusatzInfo.

    Doch noch eine Frage dazu:
    Kann ich aus einem DDS mit CRTPF eine Tabelle erstellen mit dem CCSID=870 ?
    (Der Befehl verlangt immer eine Satzlänge RCDLEN, aber dann darf es wieder nicht eine DDS-Quelle sein)

Similar Threads

  1. Antworten: 4
    Letzter Beitrag: 11-08-06, 11:26
  2. Textdatei im IFS hat Sonderzeichen
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-06-06, 15:59
  3. Umlaute werden im IFS zu Sonderzeichen
    By y-tom in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 29-05-06, 14:31
  4. Dauerthema Sonderzeichen
    By Liebhoff in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 02-11-05, 09:35
  5. CZ Sonderzeichen auf Printer über CA
    By Markus Gruebl in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 21-09-01, 09:24

Tags for this Thread

Berechtigungen

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