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: