Estou estudando plpgsql mas confesso que não estou entendo uma coisa.
Eu declarei uma variável, e estou tentando atribuir um valor escalar a ela
que vem de um SQL, mas eu recebo um erro informando que não é permitido
fazer isso.
Erro de SQL:
ERRO: erro de sintaxe em ou próximo a "SELECT"
LINE 1: SELECT SELECT carro FROM venda WHERE idvenda = $1
^
QUERY: SELECT SELECT carro FROM venda WHERE idvenda = $1
CONTEXT: SQL statement in PL/PgSQL function "comissao_new" near line 10
Indicação de entrada :
CREATE FUNCTION comissao_new(p_idvenda integer)
RETURNS numeric(8,2) AS $$
DECLARE
v_idcarro integer;
v_zerokm boolean;
v_vvenda numeric(8,2);
v_vend integer;
v_c_vend numeric(8,2);
BEGIN
v_idcarro := SELECT carro FROM venda WHERE idvenda = p_idvenda;
v_zerokm := SELECT zero_km FROM carro WHERE idcarro = v_idcarro;
v_vvenda := SELECT valor FROM venda WHERE idvenda = p_idvenda;
v_idvend := SELECT vendedor FROM venda WHERE idvenda=p_idvenda;
v_c_vend := SELECT comissao FROM vendedor WHERE idvendedor = v_idvend;
IF v_zerokm THEN
RETURN (v_vvenda - custo_total(v_idcarro) )*v_c_vend;
ELSE
RETURN v_vvenda * v_c_vend;
END IF;
END;
$$ LANGUAGE plpgsql;
Afinal, como eu posso fazer essa atribuição. Encontrei algo pareceido em
SELECT * INTO ... mas neste caso a variável não pode ser escalar, como eu
desejo.
--
View this message in context:
http://www.nabble.com/Atribuir-valor-escalar-retornado-de-um-SELECT-em-plpgsql-tp25704399p25704399.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