In Oracle Database, de COLLATION() functie retourneert de naam van de afgeleide sortering voor zijn argument.
Syntaxis
De syntaxis gaat als volgt:
COLLATION(expr)
Waar expr moet evalueren naar een tekenreeks van het type CHAR , VARCHAR2 , LONG , NCHAR , of NVARCHAR2 .
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT COLLATION('Boat')
FROM DUAL; Resultaat:
USING_NLS_COMP
Voorbeeld met de COLLATE Clausule
Dit is wat er gebeurt als we de COLLATE . gebruiken clausule om de sortering expliciet te specificeren:
SELECT COLLATION('Boat' COLLATE LATIN_AI)
FROM DUAL; Resultaat:
LATIN_AI
Overweging bij gebruik van NLS_SORT
De COLLATION() functie retourneert alleen de gegevensgebonden sortering, en niet de dynamische sortering ingesteld door de NLS_SORT parameter.
Voorbeeld:
SELECT COLLATION('Boat' COLLATE USING_NLS_SORT)
FROM DUAL; Resultaat:
USING_NLS_SORT
U kunt de SYS_CONTEXT() . gebruiken functie om de waarde van de NLS_SORT . te retourneren parameter:
SELECT SYS_CONTEXT('USERENV','NLS_SORT')
FROM DUAL; Resultaat:
BINARY
Elk achtervoegsel zoals _CI , _AI , en _CS wordt geretourneerd:
SELECT
COLLATION('Boat' COLLATE USING_NLS_SORT_CI) AS "_CI",
COLLATION('Boat' COLLATE USING_NLS_SORT_CS) AS "_CS",
COLLATION('Boat' COLLATE USING_NLS_SORT_AI) AS "_AI"
FROM DUAL; Resultaat:
_CI _CS _AI ____________________ ____________________ ____________________ USING_NLS_SORT_CI USING_NLS_SORT_CS USING_NLS_SORT_AI
Nullargument
De sortering wordt geretourneerd, zelfs bij het doorgeven van null :
SELECT COLLATION(null)
FROM DUAL; Resultaat:
USING_NLS_COMP
Onjuist aantal argumenten
Het aanroepen van de functie zonder het doorgeven van argumenten resulteert in een fout:
SELECT COLLATION()
FROM DUAL; Resultaat:
Error starting at line : 1 in command - SELECT COLLATION() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
En het doorgeven van te veel argumenten resulteert ook in een fout:
SELECT COLLATION('Boat', 'Dang')
FROM DUAL; Resultaat:
Error starting at line : 1 in command -
SELECT COLLATION('Boat', 'Dang')
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 - "invalid number of arguments"
*Cause:
*Action: