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