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.

Tags:,
Petter Rafael
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.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 325 outros assinantes

Busca

julho 2020
DSTQQSS
 1234
567891011
12131415161718
19202122232425
262728293031 

Categorias