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

Responder a