In Oracle, de NLS_CHARSET_ID()
functie retourneert het ID-nummer van de tekenset van een bepaalde tekenset. Je geeft de naam van de tekenset door als argument, en het geeft zijn ID terug.
Syntaxis
De syntaxis gaat als volgt:
NLS_CHARSET_ID(string)
Waar string
is de naam van de tekenset waarvoor u de ID wilt retourneren.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;
Resultaat:
2000
Hier is het met een andere tekenset:
SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;
Resultaat:
871
Nullargument
Als het argument null
is , het resultaat is null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL;
Resultaat:
NLS_CHARSET_ID(NULL) _______________________ null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null
treedt op als resultaat van een SQL SELECT
uitspraak.
U kunt echter SET NULL
. gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null
moet worden geretourneerd.
Ongeldige namen van tekensets
Het doorgeven van een ongeldige tekensetnaam resulteert in null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL;
Resultaat:
NLS_CHARSET_ID('OOPS') _________________________ null
Onjuist aantal argumenten
Het aanroepen van de functie zonder het doorgeven van argumenten resulteert in een fout:
SELECT NLS_CHARSET_ID()
FROM DUAL;
Resultaat:
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:
Het doorgeven van meerdere namen van tekensets resulteert echter in de ID van de eerste die wordt geretourneerd:
SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL;
Resultaat:
871