Jorge,
acho que seu método é meio lusitano (não querendo ofender os amigos desse país).
 
Vc consulta uma tabela que nem sabe se existe ?
E além disso, se descobre que ela não existe tenta criar e voltar onde parou ?
Isso tá meio fora de ordem num acha ?
 
O fluxo mais coerente seria:
 
1 - Verifica se a tabela existe (user_tables ou all_tables).
2 - Se não existe então cria e se for o caso até popula ela com dados !
3 - Faz a consulta sabendo que ela vai existir !
 
Abraço,
Marco.

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Fabio Santos
Sent: terça-feira, 20 de março de 2007 11:01
To: [email protected]
Subject: RES: [oracle_br] Problema: Create table no Exception



O exemplo eu não tenho.
Mas, trasforme a criação da tabela em uma string e mande executar no
execute immediate.
Antes de tudo, verifique com o all_tables se a tabela já existe ou não.
Assim vc não precisará usar exception para criar a tabela

Abraços

-----Mensagem original-----
De: [email protected] <mailto:oracle_br%40yahoogrupos.com.br>  
[mailto:[email protected] <mailto:oracle_br%40yahoogrupos.com.br> ]
Em nome de Jorge Augusto Lustosa
Enviada em: domingo, 18 de março de 2007 22:54
Para: [email protected] <mailto:oracle_br%40yahoogrupos.com.br> 
Assunto: [oracle_br] Problema: Create table no Exception

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

>Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
Procedure » Scripts » Tutoriais acesse:
http://www.oraclebr.com.br/codigo/ListaCodigo.php 
<http://www.oraclebr.com.br/codigo/ListaCodigo.php>  
----------------------------------------------------------
--------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/[email protected]/ 
<http://www.mail-archive.com/[email protected]/>  
----------------------------------------------------------
--------------------------------------------------
>O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
http://www.oraclebr.com.br/ <http://www.oraclebr.com.br/>  
----------------------------------------------------------
------------------------------------------------ 
Links do Yahoo! Grupos

-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.13/726 - Release Date:
18/3/2007 15:34


-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.14/727 - Release Date:
19/3/2007 11:49




 


[As partes desta mensagem que não continham texto foram removidas]

Responder a