I Oracle er NLS_CHARSET_ID()
funktion returnerer tegnsættets ID-nummer for et givet tegnsæt. Du sender tegnsættets navn som et argument, og det returnerer dets ID.
Syntaks
Syntaksen ser sådan ud:
NLS_CHARSET_ID(string)
Hvor string
er det tegnsætnavn, som du vil returnere ID'et for.
Eksempel
Her er et grundlæggende eksempel:
SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;
Resultat:
2000
Her er det med et andet tegnsæt:
SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;
Resultat:
871
Nul-argument
Hvis argumentet er null
, resultatet er null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL;
Resultat:
NLS_CHARSET_ID(NULL) _______________________ 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.
Ugyldige tegnsætnavne
Sende et ugyldigt tegnsætnavn resulterer i null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL;
Resultat:
NLS_CHARSET_ID('OOPS') _________________________ null
Forkert antal argumenter
Kaldning af funktionen uden at sende nogen argumenter resulterer i en fejl:
SELECT NLS_CHARSET_ID()
FROM DUAL;
Resultat:
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:
Hvis du sender flere tegnsætnavne, returneres ID'et for det første:
SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL;
Resultat:
871