Alquien sabe en que tabla encontrar los nombres y tipo de dato que retorna una FUNCION de POSTGRESQL ¿?
Saludos
Edito: En information_schema.routines encuentro las funciones creadas ... pero no se donde buscar los campos (con sus respectivos tipos de datos) que retorna. Ademas decir que en la tabla information_schema.columns solo se encuentra los campos de las tablas mas no de las funciones.
supongo que en la tabla de la documentacion x'D
http://www.postgresql.org/docs/9.0/static/functions-info.html
http://www.postgresql.org/docs/9.0/static/functions-admin.html
http://www.postgresql.org/docs/9.0/static/functions-datetime.html
todo esto tomado de:
http://www.postgresql.org/docs/9.0/static/functions.html
Se agradece la informacion, esta buena la documentacion, pero lo que busco no son funciones sino recuperar los nombres de las columnas que retorna una funcion ( equivalente de procedimiento en otros gestores ) ...
Gracias. y Saludos.
pues en information_schema.routines data_type y routine_definition probablemente te sirvan
fuente: http://www.postgresql.org/docs/9.0/static/infoschema-routines.html
edito: Error :-X :-X :-X
Napk : en INFORMATION_SCHEMA.routines encuentro la informacion de la funcion, pero lo que necesito es saber que campos retorna ... Gracias por la ayuda
Lo que si encontre en una pagina de la tabla
INFORMATION_SCHEMA.routines_Columns pero al parecer en el postgres no esta implementada.
Bien lo encontre pero ahora tengo un problema, la info se encuentra en
INFORMATION_SCHEMA.routines_Columns
Al ejecutar la consulta
select * from INFORMATION_SCHEMA.routines Columns
Todo anda bien, el problema es que si la uso dentro de un inner join me salta error ( es obvio porque el nombre de la tabla esta separada ... alguna idea de como solucionar esto ¿?
que querra decir esto entonces? :silbar:
| data_type | character_data | Return data type of the function, if it is a built-in type, or ARRAY if it is some array (in that case, see the view element_types), else USER-DEFINED (in that case, the type is identified in type_udt_name and associated columns). | type_udt_name | sql_identifier | Name of the return data type of the function |
|
damn solo es el tipo, no el nombre de la columna
CREATE OR REPLACE FUNCTION usp_lista_articulos()
RETURNS SETOF record AS
$BODY$
declare lr_ret record;
BEGIN
FOR lr_ret IN
SELECT codigo, nombre FROM articulo
LOOP
RETURN NEXT lr_ret;
END LOOP;
RETURN;
END;$BODY$
LANGUAGE plpgsql VOLATILE
Hacemos un select a information_schema.routines
1) data_type: record .. OK .. estoy de acuerdo contigo.
2) sql_identifier: record .. OK.. tambien estoy de acuerdo.
Conclusion: Ninguno me sirve porque lo que yo deseo saber es :
a) codigo, nombre ademas de sus tipos de datos ( respectivamente ).
Gracias por tomarte el tiempo para responder.
Saludos.
PD: Sigo buscando una solucion.
mmmm pero si ya te mencione antes routine_definition xD ese devuelve el codigo completo de la funcion :P
Bueno se cierto .. pero entonces ahora como hago para saber que tipo de dato retorna cada columna ... porque .. imaginemos que son varias consultas con varios union all .... alquien tiene alguna idea ¿ ?
Saludos.