In Oracle Database, de NLS_CHARSET_NAME()
functie retourneert de tekensetnaam van een bepaalde tekenset, gebaseerd op zijn ID. Je geeft de tekenset-ID door als argument, en de functie geeft zijn naam terug.
Syntaxis
De syntaxis gaat als volgt:
NLS_CHARSET_NAME(number)
Waar number
is de tekenset-ID waarvoor u de naam wilt retourneren.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT NLS_CHARSET_NAME(1)
FROM DUAL;
Resultaat:
US7ASCII
Hier is het met een andere tekenset-ID:
SELECT NLS_CHARSET_NAME(871)
FROM DUAL;
Resultaat:
UTF8
Nullargument
Als het argument null
is , het resultaat is null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(null)
FROM DUAL;
Resultaat:
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 tekenset-ID
Het doorgeven van een ongeldige tekenset-ID resulteert in null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;
Resultaat:
null
Het doorgeven van het verkeerde gegevenstype levert echter een fout op:
SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;
Resultaat:
Error starting at line : 1 in command - SELECT NLS_CHARSET_NAME('oops') FROM DUAL Error report - ORA-01722: invalid number
Onjuist aantal argumenten
Het aanroepen van de functie zonder het doorgeven van argumenten resulteert in een fout:
SELECT NLS_CHARSET_NAME()
FROM DUAL;
Resultaat:
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:
Maar het doorgeven van ID's van meerdere tekensets resulteert in de naam van de eerste die wordt geretourneerd:
SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;
Resultaat:
UTF8