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

Responder a