Der CHAR-Datentyp speichert Zeichen von bis zu 32.767 Byte.
CHAR [ ( Maximallänge [ CHAR | CHARACTER ] ) ]
Maximallänge Die Maximallänge der Zeichenfolge. Wenn Bytelänge-Semantik verwendet wird (CHAR oder CHARACTER wird nicht als Teil der Länge angegeben), ist die Länge in Bytes, und sie muss im Bereich von 1 bis 32.767 liegen. Wenn keine Länge angegeben ist, ist ihr Wert "1".
Wenn Zeichenlänge-Semantik verwendet wird (CHAR oder CHARACTER wird als Teil der Länge angegeben), ist die Länge in Zeichen und Sie müssen eine Maximallänge angeben. Maximallänge kann bis zu 32767 Zeichen betragen.
Mehrbyte-Zeichen können als CHAR gespeichert werden, aber die deklarierte Länge bezieht sich auf Byte und nicht auf Zeichen, es sei denn es wird Zeichenlänge-Semantik verwendet.
CHAR kann auch als CHARACTER angegeben werden. Unabhängig von der verwendeten Syntax wird der Datentyp als CHAR beschrieben.
CHAR entspricht semantisch VARCHAR, auch wenn es sich um unterschiedliche Typen handelt. In SQL Anywhere ist CHAR ein Typ mit variabler Länge. In anderen relationalen Datenbankverwaltungssystemen ist CHAR ein Typ mit fester Länge und Daten werden mit Leerzeichen bis zur Maximallänge in Byte aufgefüllt. SQL Anywhere füllt gespeicherte Zeichendaten nicht mit Leerzeichen auf.
Wie CHAR-Spalten beschrieben werden, hängt ab von der verwendeten Client-Schnittstelle, von den verwendeten Zeichensätzen und davon, ob Zeichenlänge-Semantik verwendet wird. Zum Beispiel entspricht in Embedded SQL die beschriebene Länge der maximalen Byte-Anzahl im Clientzeichensatz. Wenn die beschriebene Länge größer wäre als 32767 Byte, würde die Spalte als Typ DT_LONGVARCHAR beschrieben. Die folgende Tabelle enthält einige Beispiele für Embedded SQL und die Ergebnisse, die bei einer DESCRIBE-Anweisung zurückgegeben werden:
Beschriebener Typ | Zeichensatz der Datenbank | Clientzeichensatz | Ergebnis der DESCRIBE-Anweisung |
---|---|---|---|
CHAR(10) | Windows-1252 | Windows-1252 | DT_FIXCHAR der Länge 10 |
CHAR(10) | UTF-8 | UTF-8 | DT_FIXCHAR der Länge 10 |
CHAR(10) | Windows-1252 | UTF-8 | DT_FIXCHAR der Länge 30 |
CHAR(20000) | Windows-31J | UTF-8 | DT_LONGVARCHAR |
CHAR(10 CHAR) | Windows-1252 | Windows-1252 | DT_FIXCHAR der Länge 10 |
CHAR(10 CHAR) | UTF-8 | UTF-8 | DT_FIXCHAR der Länge 40 |
Bei ODBC wird CHAR entweder als SQL_CHAR oder als SQL_VARCHAR beschrieben, abhängig von der Einstellung der Option odbc_distingish_char_and_varchar. Siehe odbc_distinguish_char_and_varchar-Option.
SQL/2008 Kompatibel mit SQL/2008. Im Standard ist die Zeichenlänge-Semantik die Standardeinstellung, während in SQL Anywhere die Bytelänge-Semantik die Standardeinstellung ist. Es gibt geringfügige Inkonsistenzen mit dem SQL-Standard aufgrund der Kollatierungsunterstützung ohne Berücksichtigung von Groß- und Kleinschreibung und der Unterstützung von SQL Anywhere für das Auffüllen mit Leerzeichen.
Der SQL/2008-Standard unterstützt explizite Zeichenlänge- oder Bytelänge-Semantik als SQL-Sprachenfunktion T061.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |