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

Responder a