Tenho uma procedure que consulta uma tabela temporária.

Coloquei uma condição no Exception, que caso não encontre a tabela ela
é criada durante a exceção.

EXCEPTION
   WHEN OTHERS THEN
      /* HANDLER PARA EXECUTAR TODOS OS OUTROS ERROS */
      V_CODERROR := SQLCODE;
      V_DESERROR := SUBSTR(SQLERRM, 1, 200);
     
      /* TABELA OU VIEW NÃO EXISTE */
      IF INSTR ( SQLERRM, 'ORA-00942' ) = 1 THEN
         /* CRIAR TABELA TEMPORÁRIA  */

         EXECUTE IMMEDIATE 
              'CREATE TABLE GEF.XGPR_TTMP_REL_CC (OPR_NUMERO INTEGER,
....)';

A idéia é que após a criação da tabela na execução da exceção retorne
para a query (dentro do begin/end) através de um label (goto).

Pergunto então, se isto é possível? E como fazer, já que não estou
conseguindo nem executar o create table dentro do exception. 

O q estou fazendo de errado.

Aguardo a ajuda de algum integrante do grupo. Se for possível enviar
algum exemplo.

Obrigado.

Jorge Augusto


Responder a