Olá,

Eu possuo a seguinte query:

COPY (

SELECT

    uuid,

    clientid,

    *

FROM

    logging

WHERE

    logtime

BETWEEN

    '201611015'

AND

    '201612015' ) TO '/var/lib/postgresql/arquivo.csv';


Esta query tem que ser manualmente rodada 1x por mês. Por esta razão, estou
fazendo uma PLPGSQL function para que isso seja automatizado.

CREATE or REPLACE FUNCTION lextract(date_end text)

RETURNS void AS $$


DECLARE

date_start date := CURRENT_DATE;


begin

  execute '

  COPY

      (

                SELECT

                    uuid,

                    clientid,

                    *

                FROM

                    logging

                WHERE

                    logtime

                BETWEEN

                    ' || date_start || '

                AND

                    ' || date_end || '

      )

  TO ''/var/lib/postgresql/'|| date_start ||'_logs.csv''';

end

$$ language 'plpgsql';



Quando chamo a function, recebo este erro:

select lextract('201611015');

ERROR:  operator does not exist: timestamp without time zone >= integer

LINE 13:                 BETWEEN

                         ^

HINT:  No operator matches the given name and argument type(s). You might
> need to add explicit type casts.


No que estou falhando? Obrigado!
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a