2009/12/21 Quick - Luiz Henrique <[email protected]>:
> Ola amigos oque pode estar de errado nessa declaração ?
>
> SELECT
>     usu_id, cam_id, tlg_id, tel_id, new.duration , tsd_data_spool,
> timestamp new.data_agi - interval new.duration sec  ,new.data_agi

Se"new.data_agi" é um string representando um timestamp e
"new.duration" é a quantidade de segundos creio que a sintaxe correta
é:
new.data_agi::timestamp - new.duration*'1 second'::interval


> FROM tosend  where tsd_id = cast(new.clid as integer);
>
>
> Mas se eu coloco os valores como abaixo a função não da erro!
>
> SELECT
>     usu_id, cam_id, tlg_id, tel_id, new.duration , tsd_data_spool,
> timestamp ''2009-12-21 18:00:00''  - interval '' 20 sec''  ,new.data_agi
> FROM tosend  where tsd_id = cast(new.clid as integer);
>
>
>
>
> Erro:
>
> ERRO:  erro de sintaxe em ou próximo a "$2"
> LINE 1: ...tlg_id, tel_id,  $1  , tsd_data_spool, timestamp  $2  - inte...
>                                                              ^
> SQL state: 42601
> Contexto: SQL statement in PL/PgSQL function "ligacoes" near line 16
>

Não dá para dizer muito mais sem o contexto desse SELECT.
De qualquer forma não seria pelo menos um SELECT INTO?

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a