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

NLS_CHARSET_ID()-Funktion in Oracle

In Oracle die NLS_CHARSET_ID() Die Funktion gibt die Zeichensatz-ID-Nummer eines gegebenen Zeichensatzes zurück. Sie übergeben den Namen des Zeichensatzes als Argument und er gibt seine ID zurück.

Syntax

Die Syntax lautet wie folgt:

NLS_CHARSET_ID(string)

Wobei string ist der Name des Zeichensatzes, für den Sie die ID zurückgeben möchten.

Beispiel

Hier ist ein einfaches Beispiel:

SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;

Ergebnis:

2000

Hier ist es mit einem anderen Zeichensatz:

SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;

Ergebnis:

871

Null-Argument

Wenn das Argument null ist , ist das Ergebnis null :

SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL;

Ergebnis:

   NLS_CHARSET_ID(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.

Ungültige Zeichensatznamen

Das Übergeben eines ungültigen Zeichensatznamens führt zu null :

SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL;

Ergebnis:

   NLS_CHARSET_ID('OOPS') 
_________________________ 
                     null 

Falsche Argumentanzahl

Der Aufruf der Funktion ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT NLS_CHARSET_ID()
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_ID()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

Das Übergeben mehrerer Zeichensatznamen führt jedoch dazu, dass die ID des ersten zurückgegeben wird:

SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL;

Ergebnis:

871