Em 27/08/13, Paulo Bastos<[email protected]> escreveu:
>
> Flavio
>
> Não existe um atributo denominado contrato neste schema.  Além do que
> contrato aqui é uma variavel que é utilzada na função.
>
> mais alguma ideia?
>
> Obrigado
>
> Paulo
>
>
>
>
>
> 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.


Como não tem?
Ele até indicou para você:
UPDATE socic.*contrato* SET numero_contrato = numeradora
WHERE id = contrato;

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

Responder a