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]
