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

NLS_CHARSET_NAME()-Funktion in Oracle

In der Oracle-Datenbank der NLS_CHARSET_NAME() Die Funktion gibt den Zeichensatznamen eines bestimmten Zeichensatzes basierend auf seiner ID zurück. Sie übergeben die Zeichensatz-ID als Argument, und die Funktion gibt ihren Namen zurück.

Syntax

Die Syntax lautet wie folgt:

NLS_CHARSET_NAME(number)

Wobei number ist die Zeichensatz-ID, für die Sie den Namen zurückgeben möchten.

Beispiel

Hier ist ein einfaches Beispiel:

SELECT NLS_CHARSET_NAME(1)
FROM DUAL;

Ergebnis:

US7ASCII

Hier ist es mit einer anderen Zeichensatz-ID:

SELECT NLS_CHARSET_NAME(871)
FROM DUAL;

Ergebnis:

UTF8

Null-Argument

Wenn das Argument null ist , ist das Ergebnis null :

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

Ergebnis:

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 Zeichensatz-ID

Das Übergeben einer ungültigen Zeichensatz-ID führt zu null :

SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;

Ergebnis:

null

Das Übergeben des falschen Datentyps gibt jedoch einen Fehler zurück:

SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_NAME('oops')
FROM DUAL
Error report -
ORA-01722: invalid number

Falsche Argumentanzahl

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

SELECT NLS_CHARSET_NAME()
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_NAME()
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:

Die Übergabe mehrerer Zeichensatz-IDs führt jedoch dazu, dass der Name der ersten zurückgegeben wird:

SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;

Ergebnis:

UTF8