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?

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

Responder a