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

Função INITCAP() no Oracle


No Oracle, o INITCAP() A função retorna seu argumento com a primeira letra de cada palavra em maiúscula e todas as outras letras em minúsculas.

Para requisitos linguísticos especiais para conversões de maiúsculas e minúsculas, você pode tentar o NLS_INITCAP() função em vez disso.

Sintaxe


A sintaxe fica assim:
INITCAP(char)

Onde char pode ser de qualquer um dos tipos de dados CHAR , VARCHAR2 , NCHAR , ou NVARCHAR2 .

Exemplo


Aqui está um exemplo simples para demonstrar:
SELECT INITCAP('ponzi investment house')
FROM DUAL;

Resultado:
   INITCAP('PONZIINVESTMENTHOUSE') 
__________________________________ 
Ponzi Investment House            

E se eu passar em todas as letras maiúsculas?


Passar todas as letras maiúsculas não altera o resultado:
SELECT INITCAP('PONZI INVESTMENT HOUSE')
FROM DUAL;

Resultado:
   INITCAP('PONZIINVESTMENTHOUSE') 
__________________________________ 
Ponzi Investment House            

Valores nulos


Passando null retorna null :
SET NULL 'null';

SELECT INITCAP(null)
FROM DUAL;

Resultado:
   INITCAP(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.

Contagem incorreta de argumentos


Chamando INITCAP() sem passar nenhum argumento retorna um erro:
SELECT INITCAP()
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT INITCAP()
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 o número errado de argumentos resulta em um erro:
SELECT INITCAP('Gosh', 'Dang', 'Investments')
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT INITCAP('Gosh', 'Dang', 'Investments')
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: