I Oracle, NLS_CHARSET_ID()
funktion returnerar teckenuppsättningens ID-nummer för en given teckenuppsättning. Du skickar teckenuppsättningens namn som ett argument och det returnerar dess ID.
Syntax
Syntaxen ser ut så här:
NLS_CHARSET_ID(string)
Där string
är teckenuppsättningens namn som du vill returnera ID:t för.
Exempel
Här är ett grundläggande exempel:
SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;
Resultat:
2000
Här är den med en annan teckenuppsättning:
SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;
Resultat:
871
Nollargument
Om argumentet är null
, resultatet är null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL;
Resultat:
NLS_CHARSET_ID(NULL) _______________________ null
Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när null
uppstår som ett resultat av en SQL SELECT
påstående.
Du kan dock använda SET NULL
för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null
bör returneras.
Ogiltiga teckenuppsättningsnamn
Att skicka ett ogiltigt teckenuppsättningsnamn resulterar i null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL;
Resultat:
NLS_CHARSET_ID('OOPS') _________________________ null
Inkorrekt antal argument
Att anropa funktionen utan att skicka några argument resulterar i ett fel:
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:
Att skicka flera teckenuppsättningsnamn resulterar dock i att ID:t för den första returneras:
SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL;
Resultat:
871