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