No Oracle, o
NLS_CHARSET_ID() A função retorna o número de ID do conjunto de caracteres de um determinado conjunto de caracteres. Você passa o nome do conjunto de caracteres como um argumento e ele retorna seu ID. Sintaxe
A sintaxe fica assim:
NLS_CHARSET_ID(string) Onde
string é o nome do conjunto de caracteres para o qual você deseja retornar o ID. Exemplo
Segue um exemplo básico:
SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL; Resultado:
2000
Aqui está com um conjunto de caracteres diferente:
SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL; Resultado:
871
Argumento nulo
Se o argumento for
null , o resultado é null :SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL; Resultado:
NLS_CHARSET_ID(NULL)
_______________________
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. Nomes de conjuntos de caracteres inválidos
Passar um nome de conjunto de caracteres inválido resulta em
null :SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL; Resultado:
NLS_CHARSET_ID('OOPS')
_________________________
null Contagem incorreta de argumentos
Chamar a função sem passar nenhum argumento resulta em um erro:
SELECT NLS_CHARSET_ID()
FROM DUAL; Resultado:
Error starting at line : 1 in command - SELECT NLS_CHARSET_ID() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
No entanto, passar vários nomes de conjuntos de caracteres resulta no ID do primeiro sendo retornado:
SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL; Resultado:
871