Olá pessoal,
Como informado no vídeo do post Retorno às atividades em 2018..., normalmente gosto de publicar aqui no blog artigos longos e completos que exploram bem um determinado assunto, mas esses artigos levam muito tempo para escrever, portanto, para compartilhar mais conhecimento com vocês, começarei agora (a partir deste post) a escrever também, posts mais curtos sobre aquilo que estou trabalhando no meu cotidiano e que acho interessante compartilhar.
Neste post vou compartilhar a experiência de um problema que tive na semana passada ao tentar criar uma visão materializada. Tudo começou quando um DEV abriu uma solicitação para a equipe de Banco de Dados criar uma MV (Materialized View) a partir de um SELECT que ele nos passou. Peguei a solicitação e fui criar a MV em um BD de homologação e adivinhem o que aconteceu? Ocorreu o erro ORA-22818:
ORA-22818: expressões de subconsulta não permitidas aqui
22818. 00000 - "subquery expressions not allowed here"
*Cause: An attempt was made to use a subquery expression where these
are not supported.
*Action: Rewrite the statement without the subquery expression.
Fui pesquisar no MOS sobre o erro acima e achei o doc "Bug 3644243 : CAN'T CREATE MATERIALIZED VIEWS BASED ON SUBQUERY VIEW AFTER8.1.7 -> 9.2 UPGRADE". Nele, entre diversas informações, descobri que tratava-se de um bug que teria sido resolvido na versão 10.2.0, porém eu estava executando o código na versão 12.2.0 e o erro ainda estava acontecendo. Descobri nesse doc que o erro ocorria por causa de uma linha do SQL que continha uma subquery na lista de colunas, como no exemplo da imagem abaixo:
O que fiz para resolver o problema? Ao invés de gastar mais tempo tentando encontrar alguma solução mais demorada ou abrindo um SR no MOS para que a Oracle pudesse criar um patch específico para o meu ambiente, achei mais fácil e rápido apenas reescrever o código do SQL eliminando a subquery na lista de colunas, ficando o resultado final similar ao que você pode ver na imagem abaixo:
Por hoje é só!
[]s
0 comments:
Postar um comentário