Em 8 de novembro de 2013 16:29, Eduardo Rodrigues
<[email protected]>escreveu:

> Pessoal,
>
> utilizo o PostgreSQL 9.2 e quero replicar o conteúdo de uma tabela,
> levando em consideração a coluna recebimento que eh do tipo timestamp. No
> banco de dados online ficara armazenado apenas o período dos últimos 30
> dias, o que for maior do que 30 dias tenho que armazenar em um outro banco
> de dados. Entao pensei em utilizar o dblink,  criei uma instrução SQL que
> funciona normalmente. Mas quando a executo em uma function ela compila mas
> no momento de executar a mesma retorna erro, acredito que seja uma caso de
> escape que nao estou conseguindo solucionar.  Sera que alguém pode me
> ajudar?
>

Só faltou a principal informação: qual o erro que retorna?

[]'s


>
> Segue abaixo a estrutura da tabela
>
> *Estrutura das tabelas*
> *Banco de dados online*
> CREATE TABLE tabela(
> id bigint,
> user_id character varying(16),
> recebimento timestamp without time zone);
>
> *banco de dados historico*
> CREATE TABLE historico_tabela(
> id bigint,
> user_id character varying(16),
> recebimento timestamp without time zone);
>
>
> *instrução select*
>
> INSERT INTO historico_tabela
>              SELECT * FROM dblink ('host=remote user=reply password=123
> dbname=database' ,
>                      'SELECT * FROM tabela where recebimento <
> date_trunc(''second'',timestamp ''now()'')  - INTERVAL''30 day'' ')
> AS resultado(id bigint, user_id character varying(16), recebimento
> timestamp without time zone);
>
>
> *function*
>
>
>  CREATE OR REPLACE FUNCTION teste_reply()
>   RETURNS int4 AS
> $BODY$
> declare
>   condicao_where character varying(255);
>   value2 int4;
> begin
>
>    condicao_where := 'SELECT * FROM tabela where recebimento <
> date_trunc('second',timestamp 'now()')  - INTERVAL '30 day';
>
>    SELECT * FROM dblink('host=remote user=reply password=123
> dbname=database', condicao_where)
>      AS resultado(id bigint, user_id character varying(16), recebimento
> timestamp without time zone);) INTO value2;
>     return value2;
>
> end;
> $BODY$
>   LANGUAGE plpgsql VOLATILE
>   COST 100;
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a