Jales,

    Na procedure vc está criando a tabela com sql dinâmico, em tempo de
execução, logo... em tempo de projeto (momento em que vc está escrevendo o
código) ela ainda não existe, por isso o erro.

     Neste caso, o INSERT precisa ser executado como sql dinâmico também
(ver exemplo abaixo):

BEGIN

EXECUTE IMMEDIATE ('CREATE GLOBAL TEMPORARY TABLE T9(J NUMBER (5))');
EXECUTE IMMEDIATE ('INSERT INTO T9 values (5)');
--commit;
end;

[]s

Fábio Prado
http://www.fabioprado.net


Em 2 de março de 2014 09:36, Jales Jose Moraes
<malphig...@yahoo.com.br>escreveu:

>
>
> Bom dia!
>
> Senhores estou tentando criar uma tabela temporaria. Mas ja em uma simples
> declaração da mesma (conforme o script abaixo), está me retornando o erro
> de tabela inexistente. Porém se crio a tabela e insiro o valor via linhas
> de comando, executa normalmente. Alguém poderia me ajudar?
>
> create or replace  PROCEDURE CARGA_TEMP AS
>
> BEGIN
>
> EXECUTE IMMEDIATE ('CREATE GLOBAL TEMPORARY TABLE T9(J NUMBER (5))');
> INSERT INTO T9 values (5);
> --commit;
> end;
> /
> PL/SQL: ORA-00942: a tabela ou view não existe
>
>  
>



-- 
*Fábio Prado*
<http://www.fabioprado.net/2014/01/oracle-ace-o-que-e-isso.html>
www.fabioprado.net
"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados
Oracle"

Responder a