Re: select from (tabla dinamica)

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: J(dot) Arturo Llanquihuén M(dot) <arturo(at)llanquihuen(dot)cl>
Cc: Lucas Hernandez <lucashdz(at)gmail(dot)com>, Ayuda Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: select from (tabla dinamica)
Date: 2005-06-20 18:47:40
Message-ID: c2d9e70e05062011472ef00ef9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> yo dejaria la funcion mas o menos asi, no la probe pero es la idea, comente
>
de hecho tampoco funciona, unos pequeños cambios...

> las lineas que deberias cambiar y abajo puse como deberian ir.
> espero te sirva saludos.
>
CREATE OR REPLACE FUNCTION test(nombres char)
-- RETURNS int4 AS
-- RETURN SETOF int4 AS -- vas a devolver un conjunto de registros
-- por lo tanto usas SETOF
-- Cierto que quieres usar SETOF, pero si solo sacas una lista de
enteros de que
-- vale? IMHO, yo sacaria en un RECORD para ver nombre_tabla, numero_registros
RETURNS SETOF RECORD AS
$$
declare
row record;
-- cuenta int4; -- necesitas guardar el valor de tu select count(*)
en una variable
cuenta record; -- va a ser una variable de tipo RECORD
-- ademas segun yo lo veo se va a necesitar un cursor
cur1 refcursor;

begin
-- for row in select * from pg_tables where tablename like '$nombres'
-- Yo pense que iba a tener que construir el select en una cadena, pero esto
-- funciono
for row in select * from pg_tables where tablename like nombres
loop
-- select count(*) from row.tablename;
-- select into cuenta count(*) from row.tablename; -- aqui guardas en

-- tu variable cuenta el valor

-- de count(*)
-- Esto si que no lo puedes hacer, no puedes poner en el from una variable asi
-- Mas bien hazlo con un cursor
open cur1 for execute 'select ' || quote_literal(row.tablename)
|| '::text,
count(*) from ' || row.tablename;
fetch cur1 into cuenta;
close cur1;

return next cuenta; -- aqui retornas el valor al conjunto de datos
end loop;
return;

end;
$$
LANGUAGE 'plpgsql' VOLATILE;

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Pablo Yañez 2005-06-20 18:59:28 Re: Reorganizar tablas
Previous Message Alvaro Herrera 2005-06-20 18:27:50 Re: Grupos en un DataReport