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