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