Matheus,
Obrigado pela dica irei testar o que você informou no email.
Em 08/11/2013 17:23, "Matheus de Oliveira" <[email protected]>
escreveu:

>
>
>
> 2013/11/8 Eduardo Rodrigues <[email protected]>
>
>> 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?
>>
>> (...)
>>
>> *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';
>>
>>
> Nessa parte aqui (^^) você precisa fazer o escape das aspas simples, ou
> então usar operador dólar:
>
> condicao_where := 'SELECT * FROM tabela where recebimento <
> date_trunc(''second'', now())  - INTERVAL ''30 day'' ';
>
> ou
>
> condicao_where := $query$ SELECT * FROM tabela where recebimento <
> date_trunc('second', now())  - INTERVAL '30 day' $query$;
>
>
>    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;
>>
>
> Esta parte também parece ter um erro, você está fazendo um "SELECT * " mas
> jogando apenas numa variável "value2" que é um inteiro, você deveria usar
> várias variáveis ou ainda um tipo RECORD.
>
>
>
>>     return value2;
>>
>> end;
>> $BODY$
>>   LANGUAGE plpgsql VOLATILE
>>   COST 100;
>>
>
>
> Atenciosamente,
> --
> Matheus de Oliveira
> Analista de Banco de Dados
> Dextra Sistemas - MPS.Br nível F!
> www.dextra.com.br/postgres
>
>
> _______________________________________________
> 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