Ivan L. Seibel wrote:


Estou tendo dificuldades para encontrar material que fale como verificar a existência de uma Function no banco. A Function é de usuário e necessita prévia verificação antes de sua deleção para evitar a exceção.


Veja o comando "\df+ sua_função" no psql ou verifique no catálogo pg_proc.
http://www.postgresql.org/docs/8.1/interactive/catalog-pg-proc.html

Utilizando a opção -E no psql obtemos o SQL gerado internamente para o comando "\df+ sua_função".

SELECT CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||
 pg_catalog.format_type(p.prorettype, NULL) as "Result data type",
 n.nspname as "Schema",
 p.proname as "Name",
 pg_catalog.oidvectortypes(p.proargtypes) as "Argument data types",
 u.usename as "Owner",
 l.lanname as "Language",
 p.prosrc as "Source code",
 pg_catalog.obj_description(p.oid, 'pg_proc') as "Description"
FROM pg_catalog.pg_proc p
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
    LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang
    LEFT JOIN pg_catalog.pg_user u ON u.usesysid = p.proowner
WHERE p.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype
     AND p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype
     AND NOT p.proisagg
     AND pg_catalog.pg_function_is_visible(p.oid)
     AND p.proname ~ '^sua_função$'
ORDER BY 2, 3, 1, 4;

[]s
Osvaldo



        

        
                
_______________________________________________________ Yahoo! doce lar. Faça do Yahoo! sua homepage. http://br.yahoo.com/homepageset.html
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a