-
Zeichenumsetzung zwischen CCSID 273 und CCSID 8612 ungültig
Hallo *ALL,
ich habe hier eine Tabelle mit Character Feldern, die mit der CCSID 273 angelegt wurden.
Mein Job hat die Codepage 8612 (Arabic). Damit möchte ich nun auf die oben genannte Tabelle SQL-Abfragen ausführen. Sobald ich jedoch ein Alpha-Feld auf SPACE (where xxx = ' ') abfrage, bekomme ich folgende Fehlermeldung:
Code:
Nachrichten-ID . . . . : SQL0332 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Nachricht . . . : Zeichenumsetzung zwischen CCSID 273 und CCSID 8612
ungültig.
Ursache . . . . : Es wurde versucht, eine Zeichen- oder Grafikumsetzung für
nicht verträgliche Daten durchzuführen. Eine Umsetzung zwischen CCSID 273
und CCSID 8612 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.
Handelt es sich um eine Anweisung CONNECT, ist die Umsetzung zwischen der
Standard-SBCS-CCSID des Anwendungs-Requesters und der SBCS-CCSID des
Anwendungsserver nicht definiert. Ist die zweite CCSID 0, wurde die
Standard-SBCS-CCSID des Anwendungsservers nicht zurückgegeben. Ein
Anwendungsserver, der kein System i-Anwendungsserver ist, unterstützt die
CCSID 65535 möglicherweise nicht.
Fehlerbeseitigung: Sicherstellen, dass jeder Zeichen- oder Grafikvergleich,
jede Zeichen- oder Grafikverknüpfung und jede Zeichen- oder Grafikzuordnung
zwischen Spalten oder Host-Variablen erfolgt, die verträgliche CCSID-Werte
haben.
Handelt es sich um eine Anweisung CONNECT, entweder die SBCS-CCSID des
Anwendungs-Requesters oder des Anwendungsservers ändern, damit die
Umsetzung zwischen den CCSID-Werten definiert ist.
Wenn ich die genannten Character Felder auf UCS-2 (CCSID 13488) umstelle, funktioniert alles.
Gibt es eine Lösung für dieses Problem, ohne alle Felder auf UCS-2 umstellen zu müssen?
Gruß
Matthias
-
Nun ja, im Prinzip hast du die Lösung ja gefunden.
Die CCSID's sind leider nicht kompatibel.
Du musst also
a) die Tabelle auf UCS2 ändern
b) im SQL auf UCS2 casten
zu b)
cast(feld as vargraphic(nnn) ccsid 13488)
Bedenke aber, dass beim Umwandeln in deine Programmvariable, sollte diese nicht mit "C" definiert sein, Umwandlungsverluste (z.B. Umlaute o.ä.) auftreten.
Auch das Schreiben in die DB mit inkompatiblen CCSID's geh nur über UCS2, ohne Verluste auch nur, wenn die Tabelle UCS2 hat.
Das Casten auf Key-Felder zwingt SQL dann auch immer zu einem Table-Scan !!!
-
Hast Du versucht auf die Tabelle eine View zu legen, in der die alphanumerischen Felder in Unicode konvertiert werden und anschließend diese View zu verwenden?
Birgitta
-
Mal so versuchen:
PHP-Code:
SELECT * FROM Datei WHERE HEX(Feld) = HEX(SPACE(LENGTH(Feld)))
-
Zitat von Pikachu
Mal so versuchen:
PHP-Code:
SELECT * FROM Datei WHERE HEX(Feld) = HEX(SPACE(LENGTH(Feld)))
Die Where-Abfrage ist nicht das eigentlich Problem sondern der anschließende Fetch der Daten.
Beim Lesen der Daten wird eine Umwandlung zwischen den CCSID's abgelehnt.
Wenn der SQL mit Hostvariablen ausgeführt wird, muss der Inhalt von der Job-CCSID in die DB-CCSID gewandelt werden.
Auch dies scheitert aus den selben Gründen.
Es funktioniert nur mit UCS2, wenn die Hostvariablen dann auch UCS2 (Typ C) sind.
-
Nach den Antworten schließe ich, dass eine Umstellung der Felder auf UCS-2 die sauberste Möglichkeit für dieses Problem ist (gerade wegen der Performance).
Danke für eure Hilfe!
Gruß
Matthias
Similar Threads
-
By codierknecht in forum NEWSboard SAP
Antworten: 32
Letzter Beitrag: 09-02-18, 13:00
-
By ah1960 in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 30-06-08, 15:03
-
By schaaf in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 04-05-06, 11:18
-
By Muchi in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 21-04-06, 13:54
-
By Binford in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 07-03-06, 08:58
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks