Olá Everaldo, Obrigado pela ajuda, infelismente não funcionou como eu esperava.
Eu preciso saber se a tabela da minha sessão foi criado, mas o que acontece é que a consulta que você me passou vai me mostrar a tabela temporária de todas as sessões. E não somente a minha. Na verdade, o que acontece comigo é que como uso um sistema web com um número muito alto de requisições, preciso manter minha conexão persistente. A cada recarregamneto da tela, eu tenho que ver se a tabela temporária existe (ou caso a conexão tenha se expirado), se não exisitir, eu a crio e preencho com informações baśicas recolhidas da sessão do PHP. Eu estava fazendo o trabalho sempre removendo e recriando as funções com o comando DROP IF EXIST, só que eu não sabia que as procedures quando são executadas na seção, são na verdade COMPILADAS no momento da sua primeira execução, de tal forma que as informações da tabela que ele extrai são registrados na procedure através dos OIDS. Como os OIDS mudam porque eu sempre recriava a tabela temporária, mas a seção não era expirada, não consequia realizar as operações que desejava porque dava um erro, pois a procedure procurava os dados em um OID inexistente. Como as vezes eu não sei quando a seção foi expirada, não tem como eu ficar a cada requisição removendo e recriando a tabela, mas o espaço ocupado não é meu problema. Muito obrigado pela sua ajuda. Daniel Cordeiro Evandro Ricardo Silvestre escreveu: > Daniel, > > Tente o seguinte: > > SELECT a.relname AS tabela > FROM pg_class a > WHERE (a.relkind = 'r') and relnamespace <> 2200 > > Vai te retornar todas as tabelas temporárias. > > Sinceramente, não confio em fazer acesso a tabelas temporárias do jeito > que deseja fazer! Particularmente prefiro apagar a tabela temporária > sempre após o uso, para não ocupar espaço! > > Att > > Evandro > > Daniel Cordeiro wrote: > >> Olá a todos mais uma vez, >> >> Além do problema das conexões, gostaria de saber como descubro a tabela >> temporária que esta ativa na seção corrente, pois gostaria de gravar >> algumas informações nesta tabela temporária ( carregadas da seção do >> PHP) para interagir diretamente através de gatilhos e procedures que se >> baseam nestas informações ( e assim, tirando a necessidade de se passar >> parâmetros para as procedures). >> >> Estou usando PostGreSQL 8.2, e a única coisa que vi nesta versão é como >> deletar a tabela com a comando DROP TABLE IF EXISTS. >> >> Procurando pelas tabelas do sistema, eu encontrei a tabela com o >> sequinte comando: >> >> =#SELECT schemaname,tablename from pg_tables where tablename = 'teste'; >> >> O problema é que ela me retorna todas as tabelas temporárias de todas as >> sessões ativas, da sequinte forma: >> >> schemaname | tablename >> ------------+----------- >> pg_temp_1 | teste >> pg_temp_2 | teste >> >> >> Gostaria de uma forma de descobrir se uma determinada tabela temporária >> existe na MINHA SESSAO CORRENTE, para que, caso não exista, eu possa >> cria-la na minha conexão persistente. >> >> >> Desde já agradeço e espero poder contribuir com o grupo tanto quanto ele >> me ajuda. >> >> Daniel Cordeiro >> >> >> > > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > Antes de perguntar consulte o manual > http://pgdocptbr.sourceforge.net/ > > Para editar suas opções ou sair da lista acesse a página da lista em: > http://pgfoundry.org/mailman/listinfo/brasil-usuarios > > > > -- /* "O único lugar aonde o sucesso vem antes do trabalho é no dicionário". (Albert Einstein) */ +--------------------------------------------------------------------------+ | Daniel Cordeiro de Morais Neto | | [EMAIL PROTECTED] | | Administrador de Redes | | ADM Soluções em Informática LTDA | | www.admsi.com.br | | F. (083)244-0757 | | Debian User - 453 - Sarge | | Gentoo User | +--------------------------------------------------------------------------+ _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
