Quando estou executando a função abaixo abaixo da msg , está dando erro. A msg abaixo tirei do log.
2013-08-27 13:15:09 BRT ERRO: refer�ncia � coluna "contrato" � amb�gua no caracter 69
2013-08-27 13:15:09 BRT DETALHE: Ela poderia referenciar uma vari�vel PL/pgSQL ou uma coluna de tabela.
2013-08-27 13:15:09 BRT CONSULTA: UPDATE socic.contrato SET numero_contrato = numeradora
WHERE id = contrato
Função
CREATE OR REPLACE FUNCTION socic.numeradora_contrato(loja integer, tipo_vend integer, codigo_fin integer, contrato integer)
RETURNS integer AS
$BODY$declare numeradora int4;
BEGIN
SELECT nr.numero_corrente + 1 INTO numeradora
FROM socic.numeradora_contrato as nr
WHERE nr.id_loja = loja
AND nr.tipo_venda = tipo_vend
AND nr.codigo_financeiro = codigo_fin
FOR UPDATE;
IF (numeradora IS NULL) THEN
INSERT INTO socic.numeradora_contrato(numero_corrente, id_loja, tipo_venda, codigo_financeiro)
VALUES (0, loja, tipo_vend, codigo_fin);
SELECT nr.numero_corrente + 1 INTO numeradora
FROM socic.numeradora_contrato as nr
WHERE nr.id_loja = loja
AND nr.tipo_venda = tipo_vend
AND nr.codigo_financeiro = codigo_fin
FOR UPDATE;
END IF;
UPDATE socic.numeradora_contrato SET numero_corrente = numeradora
WHERE id_loja = loja
AND tipo_venda = tipo_vend
AND codigo_financeiro = codigo_fin;
UPDATE socic.contrato SET numero_contrato = numeradora
WHERE id = contrato;
RETURN numeradora;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Quando troco contrato (Em negrito na função) por contrato1 funciona.
Antecipadamente agradeço a ajuda
Paulo
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
