I Oracle Database er NLS_CHARSET_NAME()
funktion returnerer tegnsætnavnet på et givet tegnsæt baseret på dets ID. Du sender tegnsæt-id'et som et argument, og funktionen returnerer sit navn.
Syntaks
Syntaksen ser sådan ud:
NLS_CHARSET_NAME(number)
Hvor number
er det tegnsæt-id, som du vil returnere navnet for.
Eksempel
Her er et grundlæggende eksempel:
SELECT NLS_CHARSET_NAME(1)
FROM DUAL;
Resultat:
US7ASCII
Her er det med et andet tegnsæt-id:
SELECT NLS_CHARSET_NAME(871)
FROM DUAL;
Resultat:
UTF8
Nul-argument
Hvis argumentet er null
, resultatet er null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(null)
FROM DUAL;
Resultat:
null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null
opstår som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Ugyldigt tegnsæt-id
Ved at videregive et ugyldigt tegnsæt-id resulterer det i null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;
Resultat:
null
Hvis du sender den forkerte datatype, returneres en fejl:
SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT NLS_CHARSET_NAME('oops') FROM DUAL Error report - ORA-01722: invalid number
Forkert antal argumenter
Kaldning af funktionen uden at sende nogen argumenter resulterer i en fejl:
SELECT NLS_CHARSET_NAME()
FROM DUAL;
Resultat:
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:
Men overførsel af flere tegnsæt-id'er resulterer i, at navnet på den første returneres:
SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;
Resultat:
UTF8