É 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.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022