Comparar e concatenar no Oracle (PL/SQL)

[ad#texto]

Vamos supor que você precise fazer a seguinte comparação no PL/SQL:

IF varTexto || varText2 || varTexto3  = ‘teste de compara texto (string)’ THEN

.....

END IF;

É bem provável que dependendo do tamanho máximo alcançado pela concatenação das variáveis ocorra o seguinte erro:

ORA-04030: sem espaço de memória para processo durante tentativa de alocação de 16328 bytes (koh-kghu call ,pmuccst: adt/record)

Embora o erro aponte para uma possível falta de memória no banco de dados Oracle na verdade a concatenação dentro do IF que está causando o erro.

Uma solução mais imediatista (embora bem deselegante) seria dividir o IF com a concatenação em 3 IF´s encadeados.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.