Marcelo Magno escreveu:
> Boa Tarde,
> 
> Estou fazendo uns testes com tabelas temporarias mas estou tendo alguns 
> problemas...
> 
> considere o seguinte codigo plpgsql como exemplo:
> 
> create temporary table tmp_tbl_a (like tbl_a) on commit drop ;
> insert into tmp_tbl_a * from tbl_a;
> raise notice 'count';
> select into contagem  count(*) from temp_tarif_htl;
> raise notice 'cont da tabela: %', contagem;
> 
> Rodando a funcao em que esse codigo se encontra dentro do pgAdmin,
> na primeira vez ele funciona como esperado. Na segunda tentativa de 
> rodar, eu já ganho uma mensagem de erro:
> 
> ERROR:  relation with OID 394100 does not exist
> 
> Se eu fecho o editor de query, e abro novametne, funciona sempre bem... 
> mas se eu tento rodar mais do que 1 vez por sessão do editor de query eu 
> tomo esse erro.
> 
> Tentei colocar um begin e commit em volta da chamada da funcao, mas o 
> erro continua o mesmo...
> 
> Alguem saberia me direcionar sobre o que procurar para sanar esse problema ?
> 


Este é um assunto recorrente na lista.
Dê uma olhada no histórico mas, para adiantar, veja o por quê nesta FAQ:
http://www.postgresql.org/docs/faqs.FAQ.html#item4.19

4.19) Why do I get "relation with OID ##### does not exist" errors when 
accessing temporary tables in PL/PgSQL functions?

Portanto utilize o EXECUTE nos comandos que se referirem a tabela 
temporária.

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a