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: