I Oracle Database, NLS_CHARSET_NAME()
funktion returnerar teckenuppsättningens namn för en given teckenuppsättning, baserat på dess ID. Du skickar teckenuppsättnings-ID som ett argument, och funktionen returnerar sitt namn.
Syntax
Syntaxen ser ut så här:
NLS_CHARSET_NAME(number)
Där number
är det teckenuppsättnings-ID för vilket du vill returnera namnet.
Exempel
Här är ett grundläggande exempel:
SELECT NLS_CHARSET_NAME(1)
FROM DUAL;
Resultat:
US7ASCII
Här är den med ett annat teckenuppsättnings-ID:
SELECT NLS_CHARSET_NAME(871)
FROM DUAL;
Resultat:
UTF8
Nollargument
Om argumentet är null
, resultatet är null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(null)
FROM DUAL;
Resultat:
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.
Ogiltigt teckenuppsättnings-ID
Att skicka ett ogiltigt teckenuppsättnings-ID resulterar i null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;
Resultat:
null
Men om du skickar fel datatyp returneras ett fel:
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
Inkorrekt antal argument
Att anropa funktionen utan att skicka några argument resulterar i ett fel:
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 att skicka flera teckenuppsättnings-ID:n resulterar i att namnet på den första returneras:
SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;
Resultat:
UTF8