2009/2/20 Newton Teixeira do Nascimento Júnior <[email protected]>: > Olá comunidade, (Postgres 8.2.4 e Distribuição CentOS 4.5) > > > > Preciso (MUITO) verificar em uma função se uma dada tabela existe no banco. > > O usuário envia uma determinada data pela entrada, a função precisa > verificar se essa tabela ainda existe (as tabelas estão no formato > bhpas_h_YYYY_MM_DD). > > Se essa tabela não estiver on-line, preciso recarregar ela no banco através > de 02 arquivos que estão no mesmo servidor Linux no path /tmp/sage/arqs. > > > > Esse dois arquivos são bhpas_h_YYYY_MM_DD.dados e bhpas_h_YYYY_MM_DD.sqm; > > > > Digamos que o usuário quer consultar dados de 06/11/2001; preciso verificar > se existe uma tabela no banco chamada de bhpas_h_2001_11_06; Se não existir > preciso carregá-la através dos arquivos bhpas_h_2001_11_06.dados e > bhpas_h_2001_11_06.sqm que estão no path /tmp/sage/arqs. > > > > Eis o conteúdo de bhpas_h_2001_11_06.sqm: > > > > CREATE TABLE bhpas_h_2001_11_06 (BH_DTHR TIMESTAMP WITH TIME ZONE, BH_CHAVE > INT, BH_VARIACAO INT , FLAG INT, FLAGEST SMALLINT, LINFA REAL, LINFE REAL, > LINFU REAL, LSUPA REAL, LSUPE REAL, LSUPU REAL, RESNORM REAL, RGALR > SMALLINT, VALEST REAL, VALOR REAL) > > CREATE INDEX pas_h_2001_11_06_A_I (bh_chave, bh_dthr) > > UPDATE BH_pas_h_CTL SET BH_ESTADO='ONLINE', BH_DTHR=SYSTIMESTAMP() WHERE > BH_NOME='bhpas_h_2001_11_06'\;\n > > COPY bhpas_h_2001_11_06 FROM 'bhpas_h_2001_11_06.dados' DELIMITER ',' > > > > Uma outra questão é que preciso fazer isso dinamicamente. > > > > Como fazer um EXECUTE 'SE EXISTE TAL TABELA RETORNE VERDADEIRO' sem que o > postgres > > retorne o seguinte erro: << cannot EXECUTE a null querystring >> ? > >
numa pl... select relname from pg_class where relname = 'nome_da_sua_tabela' and relkind='r'; if not found -- faz tudo o q vc precisa... end if; -- Atenciosamente, Sebastian Selau Webber Colombo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
