Oracle
 sql >> Datenbank >  >> RDS >> Oracle

NLS_CHARSET_DECL_LEN() Funktion in Oracle

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: