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