Rudinei Dias escreveu:
>
> Não...
> Eu só quero sabe "se" houve um erro no sql, e não "qual" erro.
>
> Para ser mais didático:
>
> update tabela set campo='xxxx' where x=5;
>
> -- Se houve um erro no SQL, por exemplo de sintaxe por faltar o ID
> -- gostaria que caísse no exception abaixo.
> EXCEPTION RAISE EXCEPTION 'erro dml';
> --Se não der exception, continuo com a lógica do programa
>
>
Vou te passar um exemplo do PHP tratando as exceptions, aí você adapta
pra tua situação.
PL:
create function teste_php
declare
(...)
begin
(...)
-- Ignora erro de chave duplicada
begin
insert into ...
exception when unique_violation then null
end
-- Faz update: em caso de erro, vai dar a exception lá de baixo
update tabela set campo....
return 'OK';
exception when others then
raise exception 'Erro na function: % % ', SQLSTATE , SQLERRM;
end;
PHP
$res = @pg_query("select * from teste_php()");
$retorno = @pg_fetch_result($res,0,0);
if ($retorno != 'OK')
die($retorno);
Dá pra você se virar daqui, eu acho.
[]´s, André Volpato
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral