Re: Problema con una funcion

From: Luis A(dot) Zevallos Cárdenas <lzevallos(at)lobosistemas(dot)com>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: posgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problema con una funcion
Date: 2009-05-21 19:28:51
Message-ID: ae5556ce0905211228l7ca26435lcf22f5acd3970d00@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muchas gracias a todos
lo resolvi asi:

drop FUNCTION sch_clinica.fn_size_tables();
CREATE OR REPLACE FUNCTION sch_clinica.fn_size_tables(out nombre_objeto
text, out tamano_mg numeric)
RETURNS
SETOF
RECORD
AS
$body$
DECLARE
rec record;
BEGIN
FOR rec IN (
SELECT relname as nombre, round(((relpages*8)::double
precision/1024::double precision)::numeric,2) as campo2
FROM pg_class
ORDER BY relpages DESC)
LOOP
nombre_objeto:=rec.nombre;
tamano_mg:=rec.campo2;
RETURN NEXT;
END LOOP;
RETURN;
END;
$body$
LANGUAGE 'plpgsql';

select * from sch_clinica.fn_size_tables();

Gracias y saludos.

El 21 de mayo de 2009 13:08, Jaime Casanova
<jcasanov(at)systemguards(dot)com(dot)ec>escribió:

> 2009/5/21 Luis A. Zevallos Cárdenas <lzevallos(at)lobosistemas(dot)com>:
> >
> > select * FROM sch_desarrollo.fn_size_tables() --- CONSULTA
> >
> > ERROR
> >
> *****************************************************************************************************************
> > ERROR: se requiere una lista de definición de columnas para funciones
> que
> > retornan «record»
> >
>
> Debes indicarle a postgres cuantas y de que tipo son las columnas que
> se regresan en el record, eso lo puedes hacer al momento de ejecutar
> el select haciendo algo como:
>
> select * FROM sch_desarrollo.fn_size_tables() AS (col1 tipodato1 [,
> col2 tipodato2, ...])
>
> o bien al definir la funcion usando parametros OUT
>
> CREATE FUNCTION fn_size_tables(OUT col1 tipodato1 [, OUT col2
> tipodato2, ...]) RETURNS RECORD AS ...
>
> si escoges la segunda forma la manera de invocar tu select no cambia a
> lo que tienes ahora...
>
> --
> Atentamente,
> Jaime Casanova
> Soporte y capacitación de PostgreSQL
> Asesoría y desarrollo de sistemas
> Guayaquil - Ecuador
> Cel. +59387171157
>

--
Luis Zevallos
DBA Administrador de DB & SRVR
Lobo Sistemas S.A.C
tel: +5154958310833
http://www.lobosistemas.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message elcotorro 2009-05-21 19:28:58 Re: linux y pos
Previous Message Rafael Martinez 2009-05-21 19:28:45 Re: Tshirt Tom Lane