Fabrízio,
Obrigado pela dica, vou guardar essa tambem.
Comentando o "RAISE EXCEPTION 'Deu Zica na parada';" a funcao ira
continuar o LOOP.
Só para que conste ai, conseguir achar o codigo correto do erro
(42601) e trata-lo. Segue abaixo a versao correta da funcao:
CREATE OR REPLACE FUNCTION teste()
RETURNS integer AS
$BODY$
DECLARE
base text:='';
banco RECORD;
BEGIN
FOR banco IN SELECT datname from dblink('host=10.0.100.79 port=5432
user=postgres dbname=manutencao_bases', 'SELECT datname FROM pg_database
order by datname desc') as t1(datname text) LOOP
--CARREGA O NOME DAS BASES NA VARIAVEL
base := banco.datname;
IF base != 'mapas' AND base != 'template1' AND base !=
'template0' AND base != 'postgres' AND base != 'comando' AND base !=
'affere' AND base != 'manutencao_bases' THEN
--EXECUTE('CREATE TABLE '||tabela_nova||' ( like
'||tabelamae||' INCLUDING DEFAULTS INCLUDING CONSTRAINTS ) INHERITS
('||tabelamae||'); ');
BEGIN
SELECT dblink_exec('host=10.0.100.79 port=5432 user=postgres
dbname='||base||' ', 'alter table cliente add column
clilimite_operacional boolean not null default false');
EXCEPTION
WHEN syntax_error THEN
-- COMENTADO PARA NAO FAZER NADA E CONTINUAR O LOOP
--> RAISE EXCEPTION 'Deu Zica na parada';
END;
END IF;
END LOOP;
RETURN 1;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE ;
Fabrízio de Royes Mello escreveu:
>
> 2010/6/25 Jorge Luiz <[email protected]
> <mailto:[email protected]>>
>
>
> <corte>
>
> EXCEPTION
> WHEN invalid_sqlstate_returned THEN
> RAISE EXCEPTION 'Deu Zica na parada';
> END;
>
> <corte>
>
>
> Vc pode trocar esse seu trecho por:
>
> EXCEPTION
> WHEN others THEN
> RAISE EXCEPTION 'Deu Zica na parada';
> END;
>
> Lembrando que dessa forma a PL será interrompida mesmo assim pelo uso
> desse "RAISE EXCEPTION 'Deu Zica na parada'", entretando basta vc
> modificar esse código que poderá realizar alguma outra operação.
>
> Cordialmente,
>
> --
> Fabrízio de Royes Mello
> >> Blog sobre TI: http://fabriziomello.blogspot.com
> ------------------------------------------------------------------------
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral