verificar se o cursor esta aberto.
Ola Galera.
Tenho um store_Procedure onde abro e fecho cursores, porem
tem momentos em que pode ser q toda rotina nao seja executada
entao qdo ao processar novamente a sp acusa q o cursor x já esta aberto.
Pergunta tem uma forma de checar antes da execusao da rotina
se determinados cursores estao abertos ? se tiverem fecha-los.
Obrigado.
Tenho um store_Procedure onde abro e fecho cursores, porem
tem momentos em que pode ser q toda rotina nao seja executada
entao qdo ao processar novamente a sp acusa q o cursor x já esta aberto.
Pergunta tem uma forma de checar antes da execusao da rotina
se determinados cursores estao abertos ? se tiverem fecha-los.
Obrigado.
Eduardo.padilha
Curtidas 0
Respostas
Marcus.magalhaes
30/03/2005
Boa noite.
Não tem como vc testar, o q vc deve fazer é garantir no sua procedure, que mesmo ela não sendo executada por inteiro, todos os cursores sejam fechados.
Att,
Não tem como vc testar, o q vc deve fazer é garantir no sua procedure, que mesmo ela não sendo executada por inteiro, todos os cursores sejam fechados.
Att,
GOSTEI 0
Eduardo.padilha
30/03/2005
Bom dia Marcus.magalhaes.....
Olha eu novamente, como eu poderia garantir na minha sp que mesmo ela não sendo executada por inteiro, todos os cursores sejam fechados ?
Imagina q tenho 2 cursores trabalhando em conjunto , digamos
o cursor interno e o externo , suponhamos q minha rotina executou o q tinha para executar fechou o interno, por sua vez iria fechar o externo para sair fora da sp, mas antes de fechar o ultimo cursor aconteceu algum problema e nao conseguiu fechar , se eu tentar executar a rotina novamente o vai acusar q o cursor externo esta aberto e ae esta o problema.
Entao como eu posso garantir na minha sp que mesmo ela não sendo executada por inteiro, todos os cursores sejam fechados ?
Olha eu novamente, como eu poderia garantir na minha sp que mesmo ela não sendo executada por inteiro, todos os cursores sejam fechados ?
Imagina q tenho 2 cursores trabalhando em conjunto , digamos
o cursor interno e o externo , suponhamos q minha rotina executou o q tinha para executar fechou o interno, por sua vez iria fechar o externo para sair fora da sp, mas antes de fechar o ultimo cursor aconteceu algum problema e nao conseguiu fechar , se eu tentar executar a rotina novamente o vai acusar q o cursor externo esta aberto e ae esta o problema.
Entao como eu posso garantir na minha sp que mesmo ela não sendo executada por inteiro, todos os cursores sejam fechados ?
GOSTEI 0
Marcus.magalhaes
30/03/2005
Boa tarde Eduardo.
Se acontecer algum problema irá gerar um código de erro na variável @@error, assim basta vc tratar esta variável.
Att,
Se acontecer algum problema irá gerar um código de erro na variável @@error, assim basta vc tratar esta variável.
Att,
GOSTEI 0
Eduardo Silva
30/03/2005
Tratamento de excessão e lá você testa quem está aberto...
IF (CURSOR%ISOPEN) THEN
CLOSE CURSOR;
END IF;
IF (CURSOR%ISOPEN) THEN
CLOSE CURSOR;
END IF;
GOSTEI 0