Verificando cursores no PL/SQL

[ad#texto]
Todo desenvolvedor PL/SQL utiliza constantemente cursores, seja pela praticidade, ou seja, pela necessidade mesmo, mas existe um pequeno detalhe que constantemente vejo desenvolvedores Oracle (mesmo os mais experientes) esquecerem: validar se o cursor já não está aberto.

Caso a sua aplicação, por um descuido tente abrir um cursor já aberto irá disparar o erro ORA-06511, sinalizando que o cursor já está aberto e como solução é preciso fechar a instancia atual para poder abri-lo novamente. Constantemente isso se faz necessário, pois como um cursor pode ser parametrizado, podemos precisar fecha-lo e abri-lo diversas vezes dentro da rotina PL/SQL em execução, necessitando assim que uma validação seja adicionada ao código PL/SQL.

Devemos então, antes de abrir um cursor testar se ele já não está aberto, da seguinte forma:

If SEU_CURSOR%isopen then
 Close SEU_CURSOR;
End if;

Open SEU_CURSOR;

Simples assim, evitando várias dores de cabeça.

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.