Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função NLS_COLLATION_ID() no Oracle


No Oracle Database, o NLS_COLLATION_ID() A função retorna o ID de um determinado agrupamento. Você passa o nome do agrupamento ao chamar a função e ela retorna o ID do agrupamento.

Sintaxe


A sintaxe fica assim:
NLS_COLLATION_ID(expr)

Onde expr é o nome do agrupamento, do tipo VARCHAR2 .

Exemplo


Segue um exemplo básico:
SELECT NLS_COLLATION_ID('XAZERBAIJANI')
FROM DUAL;

Resultado:
70

Aqui estão mais alguns exemplos:
SELECT 
    NLS_COLLATION_ID('UCA0620_THAI') AS "1",
    NLS_COLLATION_ID('UCA0620_TSPANISH') AS "2",
    NLS_COLLATION_ID('CANADIAN_M') AS "3",
    NLS_COLLATION_ID('FRENCH_M') AS "4"
FROM DUAL;

Resultado:
        1         2       3       4 
_________ _________ _______ _______ 
   208920    208917    4116    4112

Agrupamento inválido


Passar um nome de agrupamento inválido resulta em null :
SET NULL 'null';
SELECT NLS_COLLATION_ID('Oops!')
FROM DUAL;

Resultado:
null

Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que null ocorre como resultado de um SQL SELECT demonstração.

No entanto, você pode usar SET NULL para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null deve ser devolvido.

Argumento nulo


Passando null retorna null :
SET NULL 'null';
SELECT NLS_COLLATION_ID(null)
FROM DUAL;

Resultado:
null

Contagem incorreta de argumentos


Chamar a função sem passar nenhum argumento resulta em um erro:
SELECT NLS_COLLATION_ID()
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT NLS_COLLATION_ID()
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:

E passar muitos argumentos também resulta em um erro:
SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M')
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M')
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: