No banco de dados Oracle, o
COMPOSE()
A função retorna o resultado da aplicação da composição canônica Unicode, conforme descrito na definição do padrão Unicode D117, ao seu argumento de string. É o oposto do
DECOMPOSE()
função. Sintaxe
A sintaxe fica assim:
COMPOSE(char)
Onde
char
é um dos CHAR
, VARCHAR2
, NCHAR
, ou NVARCHAR2
tipos de dados. Exemplo
Segue um exemplo para demonstrar:
SELECT
COMPOSE('a' || UNISTR('\0303'))
FROM DUAL;
Resultado:
ã
Caracteres não Unicode
Se o conjunto de caracteres do argumento não for um dos conjuntos de caracteres Unicode, o argumento será retornado sem modificações.
Exemplo:
SELECT COMPOSE( 'a' )
FROM DUAL;
Resultado:
a
Argumento nulo
Se o argumento for null
, o resultado é null
:
SET NULL 'null';
SELECT COMPOSE(null)
FROM DUAL;
Resultado:
null
Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que um valor nulo 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.
Contagem de argumentos inválidos
Chamando COMPOSE()
sem nenhum argumento resulta em um erro:
SELECT COMPOSE()
FROM DUAL;
Resultado:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
E passar muitos argumentos também resulta em um erro:
SELECT COMPOSE('a', 'b')
FROM DUAL;
Resultado:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"