Funktionsgruppe: Numerische Funktion
CHAR_LENGTH() bzw. CHARACTER_LENGTH() bestimmt die Anzahl der Bytes oder Code Units einer Zeichenkette.
{ CHAR_LENGTH | CHARACTER_LENGTH }(
ausdruck [USING [CODE_UNITS | OCTETS]])
ausdruck
Alphanumerischer Ausdruck oder National-Ausdruck. Seine Auswertung ergibt entweder eine alphanumerische Zeichenkette (Datentyp CHAR oder VARCHAR) oder eine National-Zeichenkette (Datentyp NCHAR oder NVARCHAR).
Bei den alphanumerischen Datentypen CHAR bzw. VARCHAR liefern CHAR_LENGTH( ) und OCTET_LENGTH( ) (siehe Abschnitt „OCTET_LENGTH() - Zeichenkettenlänge bestimmen") dieselben Werte, weil jedes Zeichen in genau einem Byte (Octet) dargestellt ist.
Bei den National-Datentypen NCHAR und NVARCHAR kann die Länge entweder in Bytes (Funktionen OCTET_LENGTH und CHAR_LENGTH ... USING OCTETS) bestimmt werden, oder in UTF-16 Code Units (Funktion CHAR_LENGTH ... USING CODE_UNITS). Eine Code Unit in UTF-16 = 2 Byte. Die Anzahl der Unicode-Zeichen in einer National-Zeichenkette kann kleiner sein als der Anzahl Code Units in UTF-16, da manche Unicode-Zeichen durch zwei aufeinanderfolgenden Code Units in UTF-16 dargestellt werden (surrogate pairs).
ausdruck darf kein multipler Wert mit Dimension > 1 sein. Siehe auch Abschnitt „Verträglichkeit von Datentypen".
USING CODE_UNITS
Die Länge soll in Code Units ausgegeben werden.
In den Datentypen CHAR und VARCHAR ist 1 Code Unit = 1 Byte.
In den Datentypen NCHAR und NVARCHAR ist 1 Code Unit = 2 Byte.
USING OCTETS
Die Länge soll in Bytes ausgegeben werden.
In den Datentypen CHAR und VARCHAR ist 1 Zeichen = 1 Byte.
In den Datentypen NCHAR und NVARCHAR ist 1 Zeichen = 1 oder 2 Code Units = 2 bzw. 4 Byte.
Ergebnis
Enthält die Zeichenkette den NULL-Wert, ist das Ergebnis der NULL-Wert.
Sonst:
Das Ergebnis ist die Anzahl der Bytes oder Code Units in der Zeichenkette.
Datentyp: INTEGER
Beispiele
Anzahl der Bytes (Zeichen) bestimmen, die in der alphanumerischen Zeichenkette 'fuer' enthalten sind (Ergebnis: 4).
CHAR_LENGTH ('fuer') USING OCTETS
Anzahl der Bytes bestimmen, die in der National-Zeichenkette 'nur' enthalten sind (Ergebnis: 6).
CHAR_LENGTH (N'nur') USING OCTETS
Anzahl der Code Units bestimmen, die in der National-Zeichenkette 'nur' enthalten sind (Ergebnis: 3).
CHAR_LENGTH (N'nur') USING CODE_UNITS
Anzahl der Code Units bestimmen, die in der National-Zeichenkette 'München' enthalten sind (Ergebnis: 7).
CHAR_LENGTH (U&'M\00FCnchen')