SQL Tabellen mit VARCHAR mit UTF8 (mit Bezug auf multi-byte-Zeichen-Länge)
Wie in Oracle VARCHAR( 60 CHAR )
ich möchte, um anzugeben, ein varchar-Feld mit variabler Länge, je nach den eingefügten Zeichen.
Beispiel:
create table X (text varchar(3))
insert into X (text) VALUES ('äöü')
Sollte möglich sein (mit UTF8 als default charset der Datenbank).
DB2 bekam ich diese Fehlermeldung: DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001
(Charakter der Daten, rechtstrunkierung erfolgt ist; zum Beispiel, eine update-oder insert-Wert ist eine Zeichenfolge, die zu lang für die Spalte ist, oder ein datetime-Wert zugeordnet werden kann eine host-variable, weil es zu klein ist.)
Ich bin auf der Suche nach Lösungen für DB2, MsSql, MySql, Hypersonic.
Du musst angemeldet sein, um einen Kommentar abzugeben.
DB2
Den DB2-Dokumentation sagt:
Dies bedeutet, dass mit einer DB2-Datenbank, die Sie nicht tun können, was Sie gefragt haben .
MySql
Den MySql-Dokumentation sagt:
Dies bedeutet, dass mit einer MySql-Datenbank, die Sie verwenden können
VARCHAR(3) CHARACTER SET utf8
wie Ihre Spalte definition zu bekommen, was Sie gefragt haben.Für SQL Server, die Sie würden benutzen müssen, um NVARCHAR (unicode). Ich hoffe, jemand kann chip in mit den anderen!
Für HSQLDB (Hyperschall) VARCHAR(3) arbeitet als Standard-Kodierung UTF16.