Um resultado de um select dentro de uma função deve ser atribuído a uma
variável. Assim, vc deve criar uma variável (por exemplo, v_saldo) para
receber o valor de saldo e modificar seu select para:

select into v_saldo sd.saldo from....

Atenciosamente,
Daniel P. Julião

2009/10/16 Bruno Carneiro <[email protected]>

>
> Gente, primeira vez que estou lidando com trigger...
>
> A tabela saldodiario tem o campo saldo. CONFIRMADO.
>
>
> Erro de SQL:
>
> ERROR:  syntax error at "saldo"
> DETAIL:  Expected record variable, row variable, or list of scalar
> variables
> following INTO.
> CONTEXT:  compilation of PL/pgSQL function "ins_mov" near line 8
>
> Indicação de entrada :
>
> CREATE FUNCTION ins_mov() RETURNS trigger AS $$
> DECLARE
>   vsaldo NUMERIC;
>
> BEGIN
>   -- Verifica se saldo deste dia á existe
>   SELECT sd.saldo FROM saldodiario AS sd
>        WHERE sd.conta = NEW.conta AND sd.data = NEW.data
>        INTO saldo;
>
>   IF vsaldo IS NULL THEN
>        INSERT INTO saldodiario (conta,data,saldo) VALUES
>           (NEW.conta,NEW.data,NEW.montante);
>
>   ELSE
>        UPDATE saldodiario AS sd SET sd.saldo = vsaldo+NEW.montante
>           WHERE sd.conta=NEW.conta AND sd.data=NEW.data
>
>   END IF;
>
>   RETURN NULL;
>
> END;
> $$ LANGUAGE plpgsql;
> --
> View this message in context:
> http://www.nabble.com/Trigger-Procedure---ERRO-tentando-INSERT-tp25925330p25925330.html
> Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
>
> _______________________________________________
> 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