View Full Version : SQL Table etc....
andreaspr@aon.at
12-12-13, 13:05
@Andreas:
Die Default CCSID für *UCS2 ist 13488, nicht 1200. Siehe RPG-Handbuch V7R1 TR-7 Seite 2-31 und 4-51 und 4-62.
Keine Ahnung was du mir damit sagen willst??
Habe nichts davon geschrieben dass UCS2 die CCSID 1200 hat. Siehe meinen Post ;)
Ich bezog mich auf diesen Abschnitt deines Posts, den ich natürlich gelesen habe.
Dir war anscheinend nicht klar, warum wir 13488 genommen haben.
Bei Unicode verwende ich die CCSID 1200.
Bzw. wird diese automatisch bei dem Datentyp NVARCHAR verwendet.
In der Firma wird jedoch die CCSID 13488.
andreaspr@aon.at
12-12-13, 16:04
Ich glaube du verstehst nicht ganz.
Die Default CCSID für *UCS2 ist 13488, nicht 1200
Wo habe ich etwas anderes behauptet?!?!
Bitte lies zuerst genauer bevor du meinst jemandem korrigieren zu müssen. Das ist sonst nur i tüpferl reiterei und hielft niemandem weiter!
Ich meide einfach threads, in denen ich Dich erblicke.
---Ende---
Stimmt, 1200 ist UTF16, 1208 ist UTF8.
UCS2 war schon immer 13488.
Leider ist die Übersetzung für N(VAR)CHAR nicht UCS2 sondern wohl UTF16, einfach blöd.
... was ist daran denn blöd? Dieser Unicode für Arme und Kranke (UCS2) ist doch ein veraltetes Auslaufmodell, was mittlerweile selbst die IBM AS/400 Fraktion mitbekommen hat (siehe i5 Globalization V7R1). Das RPG auf *UCS2 hockt, hat doch ganz banale Gründe, Stichwort: statische Speicherzuweisung zur Compiletime!
D*B
Java und Co arbeiten bei Strings auch nur mit UCS2.
Sind die deshalb auch alt ?
Der Oracle-ODBC/JDBC konvertiert UTF8 automatisch in String (UCS2).
Warum also nicht direkt UCS2 verwenden?
.. sieht mir anders aus:
http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#unicode
Dieter,
der Baldur ein schönes Wochenende wünscht
Die Betonung lag ja auf Nvarchar.
Ich weiß das deshalb, da ich Daten zwischen der AS/400 und einer Oracle-DB austausche.
Auf Oracale wurde ein Feld als NVARCHAR(1) definiert.
Als ich ein "Ü" aus der AS/400 speichern wollte wurde das Zeichen wegen Längenüberschreitung abgewiesen. Erst nach Neudefinition auf NVARCHAR(2) ging es dann.
Bei JDBC und GetString bekam ich auch genau 1 Zeichen zurück.
Bei GetBytes bekam ich 2, nämlich in UTF8.
... da gibt es aber gleich zwei Verdächtige: Oracle und der Treiber - und was da so alles abgeht, da überrascht mich mittlerweile seit ArdGate nix mehr.
andreaspr@aon.at
13-12-13, 22:15
Bei Oracle wird der Zeichensatz bei der Erstellung der Datenbank definiert.
Das kann z.B.: UTF-8 oder UTF-16 sein.
Im Laufe der Datenbankinstallation gibt es dafür sogar extra einen eigenen Schirm wo der Zeichensatz ausgewählt werden muss.