On Fri, Oct 30, 2009 at 9:04 AM, serginho_pv <[email protected]> wrote:
>
> Criei a procedure abaixo, mas gostaria que ela enviasse um aviso caso
>
> CREATE OR REPLACE FUNCTION sp_ins_idioma (varchar,varchar)

Ao invés de usar DECLARE só para aliases, podes fazer o seguinte:

CREATE OR REPLACE FUNCTION sp_ins_idioma (p_cod_idioma varchar,
p_idioma varchar)

> houvesse algum problema, como por ex, violação de chave, campo null, etc..
> Estou utilizando PostgreSQL 8.4 for windows

Use controle de exceções e o RAISE:

http://www.postgresql.org/docs/8.4/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
http://www.postgresql.org/docs/8.4/interactive/plpgsql-errors-and-messages.html

Note que se o seu INSERT tentar, por exemplo, inserir um valor NULL
num campo NOT NULL, o PG não vai deixar e vai abortar a transação da
função, lançando o erro para o cliente. O controle de exceções e raise
te deixam controlar melhor a mensagem que é lançada par algo mais
significativo para sua aplicação, mas seria um erro tentar duplicar o
sistema de erros do PG.

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

Responder a