Concatenando strings (chars, varchar2, etc) ou clobs no Oracle

É conhecimento comum que bancos diferentes tem diferenças nas operações. A concatenação de strings não ficou fora dessa. A forma como este procedimento é feito no SQL Server não pode ser “migrada as-is” para o Oracle. Neste post, mostro como realizar a concatenação.

Para começar, no Oracle, o operador + é destinado a somar coisas. Então, se você tentar concatenar utilizando este valor, ele vai retornar a seguinte mensagem de erro:

SQL Error [932] [42000]: ORA-00932: tipos de dados inconsistentes: esperava CHAR obteve NUMBER
oracle.jdbc.OracleDatabaseException: ORA-00932: tipos de dados inconsistentes: esperava CHAR obteve NUMBER

 

Existem duas formas de concatermos string no Oracle, a primeira é essa:

select 'bacon' || ' ' || 'is' || ' ' || 'great!' from dual

Sim, o que você (normalmente) utiliza como um OR, aqui é um operador de concatenação.

 

A outra forma é utilizando a função concat:

SELECT CONCAT('bacon', ' is great!') FROM dual;

A desvantagem da função concat é que ela só permite dois argumentos, então com o || você tem mais controle e flexibilidade.

 

Ambas formas podem ser utilizadas para concatenar strings ou CLOBS. (Se for para misturar os dois datatypes, você vai ter que converter os dados primeiro).

 

Referência: Help do Oracle.
The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in Banco de Dados, Dev and tagged , , , , , , , .