El mar, 29-07-2008 a las 17:31 -0400, Alvaro Herrera escribió: > Roberto Rodríguez Pino escribió: > > Hola a todos! > > he ingresado varias funciones a mi base de datos con su respectiva > > descripción. ¿Existe alguna manera de extraer el listado de estas con > > sus respectivas descripciones y poder tenerlas en texto editable? He > > visto que en pgadmin al listar las funciones aparecen con su nombre y > > descripción, pero no las puedo "sacar" de ahí para llevarlas a un > > documento. > > Hola, ejecuta psql -E y luego \df+ > Con eso tendrás las consultas SQL necesarias que luego puedes refinar. > > Por si le sirve a alguien, de esta manera saque los datos que necesitaba. El nombre de la funcion, sus parametros, su retorno, el lenguaje en que estaban hechas y el comentario que les puse cuando las cree.
Saludos! Roberto SELECT p.proname as "Nombre", CASE WHEN p.proretset THEN 'setof ' ELSE '' END || pg_catalog.format_type(p.prorettype, NULL) as "Tipo de dato de salida", CASE WHEN proallargtypes IS NOT NULL THEN pg_catalog.array_to_string(ARRAY( SELECT CASE WHEN p.proargmodes[s.i] = 'i' THEN '' WHEN p.proargmodes[s.i] = 'o' THEN 'OUT ' WHEN p.proargmodes[s.i] = 'b' THEN 'INOUT ' END || CASE WHEN COALESCE(p.proargnames[s.i], '') = '' THEN '' ELSE p.proargnames[s.i] || ' ' END || pg_catalog.format_type(p.proallargtypes[s.i], NULL) FROM pg_catalog.generate_series(1, pg_catalog.array_upper(p.proallargtypes, 1)) AS s(i) ), ', ') ELSE pg_catalog.array_to_string(ARRAY( SELECT CASE WHEN COALESCE(p.proargnames[s.i+1], '') = '' THEN '' ELSE p.proargnames[s.i+1] || ' ' END || pg_catalog.format_type(p.proargtypes[s.i], NULL) FROM pg_catalog.generate_series(0, pg_catalog.array_upper(p.proargtypes, 1)) AS s(i) ), ', ') END AS "Tipos de datos de argumentos", r.rolname as "Dueño", l.lanname as "Lenguaje", pg_catalog.obj_description(p.oid, 'pg_proc') as "Descripción" 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 JOIN pg_catalog.pg_roles r ON r.oid = p.proowner WHERE p.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype AND (p.proargtypes[0] IS NULL OR p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype) AND NOT p.proisagg AND pg_catalog.pg_function_is_visible(p.oid) AND r.rolname = 'elrolquenecesitaba.' ORDER BY 1, 2, 3, 4; -- visita mi weblog! http://trasto.hopto.org/weblog [EMAIL PROTECTED] http://softwarelibre.diinf.usach.cl
signature.asc
Description: Esta parte del mensaje está firmada digitalmente