sql >> Database >  >> RDS >> Oracle

COLLATION() Functie in Oracle

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:

  1. 4 kant-en-klare SQL-gegevensconversiemethoden en gebruiksscenario's

  2. Database versus tabelruimte, wat is het verschil?

  3. MySQL TRUNCATE TABLE begrijpen door praktische voorbeelden

  4. PLS-00428:er wordt een INTO-clausule verwacht in deze SELECT-instructie