In Oracle das NLS_CHARSET_DECL_LEN()
Die Funktion gibt die Deklarationslänge (in Anzahl Zeichen) eines NCHAR
zurück Spalte.
Syntax
Die Syntax lautet wie folgt:
NLS_CHARSET_DECL_LEN(byte_count, char_set_id)
Wobei byte_count
ist die Breite der Spalte und char_set_id
ist die Zeichensatz-ID der Spalte.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;
Ergebnis:
100
Hier ist es mit einer anderen Zeichensatz-ID:
SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;
Ergebnis:
50
Erhalten Sie die Zeichensatz-ID
Wir können die NLS_CHARSET_ID()
verwenden Funktion, um die Zeichensatz-ID für einen bestimmten Zeichensatz zurückzugeben:
Beispiel:
SELECT NLS_CHARSET_DECL_LEN(
100,
NLS_CHARSET_ID('AL16UTF16')
)
FROM DUAL;
Ergebnis:
50
Null-Argument
Wenn irgendein Argument null
ist , ist das Ergebnis null
:
SET NULL 'null';
SELECT
NLS_CHARSET_DECL_LEN(null, 1) AS r1,
NLS_CHARSET_DECL_LEN(100, null) AS r2
FROM DUAL;
Ergebnis:
R1 R2 _______ _______ null null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null
tritt als Ergebnis eines SQL SELECT
auf Erklärung.
Sie können jedoch SET NULL
verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null
zurückgegeben werden soll.
Falsche Argumentanzahl
Der Aufruf der Funktion ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT NLS_CHARSET_DECL_LEN() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Und das Übergeben zu vieler Argumente führt ebenfalls zu einem Fehler:
SELECT NLS_CHARSET_DECL_LEN(100, 1, 2)
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT NLS_CHARSET_DECL_LEN(100, 1, 2) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: