In Oracle Database, de NLS_COLLATION_NAME()
functie retourneert de naam van een bepaalde sortering, op basis van zijn ID. U geeft de sorteer-ID door wanneer u de functie aanroept, en het retourneert de sorteernaam.
Syntaxis
De syntaxis gaat als volgt:
NLS_COLLATION_NAME(expr [, flag ])
Waar expr
is de sorteer-ID van het type NUMBER
.
De flag
argument is een optioneel argument dat alleen van toepassing is op Unicode Collation Algorithm (UCA) sorteringen. Het bepaalt of de functie de korte of lange vorm van de sorteernaam moet retourneren.
De flag
argument kan een van de volgende zijn:
Vlag | Beschrijving |
---|---|
'S' of 's' | Retourneert de korte vorm van de sorteernaam. |
'L' of 'l' | Retourneert de lange vorm van de sorteernaam. |
De standaardwaarde voor deze vlag is 'L'
.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT NLS_COLLATION_NAME(70)
FROM DUAL;
Resultaat:
XAZERBAIJANI
Hier zijn nog enkele voorbeelden:
SELECT
NLS_COLLATION_NAME(4112) AS "1",
NLS_COLLATION_NAME(4116) AS "2"
FROM DUAL;
Resultaat:
1 2 ___________ _____________ FRENCH_M CANADIAN_M
Lange/korte vormvlag
Zoals vermeld, kunnen we een optionele vlag doorgeven om te bepalen of de korte vorm of de lange vorm van de sorteernaam moet worden geretourneerd.
SELECT
NLS_COLLATION_NAME(208920, 'L') AS "Long",
NLS_COLLATION_NAME(208920, 'S') AS "Short"
FROM DUAL;
Resultaat:
Long Short __________________________________________ _______________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN UCA0620_THAI
De standaardwaarde voor deze vlag is 'L'
. Dus als we de vlag weglaten, wordt de lange vorm geretourneerd:
SELECT
NLS_COLLATION_NAME(208920) AS "Default"
FROM DUAL;
Resultaat:
Default __________________________________________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN
Deze vlag is echter alleen van toepassing op Unicode Collation Algorithm (UCA)-sorteringen.
Als we de vlag toepassen op een niet-UCA-sortering, zien we geen verschil:
SELECT
NLS_COLLATION_NAME(4112, 'L') AS "1",
NLS_COLLATION_NAME(4112, 'S') AS "2"
FROM DUAL;
Resultaat:
1 2 ___________ ___________ FRENCH_M FRENCH_M
Ongeldige sortering
Het doorgeven van een ongeldige sorteernaam resulteert in null
:
SET NULL 'null';
SELECT NLS_COLLATION_NAME(4113)
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.
Nullargument
Doorgeven van null
retourneert null
:
SET NULL 'null';
SELECT NLS_COLLATION_NAME(null)
FROM DUAL;
Resultaat:
null
Onjuist aantal argumenten
Het aanroepen van de functie zonder het doorgeven van argumenten resulteert in een fout:
SELECT NLS_COLLATION_NAME()
FROM DUAL;
Resultaat:
Error starting at line : 1 in command - SELECT NLS_COLLATION_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:
En het doorgeven van te veel argumenten resulteert ook in een fout:
SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
FROM DUAL;
Resultaat:
Error starting at line : 1 in command - SELECT NLS_COLLATION_NAME(4112, 'S', 'L') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: