From: | "Andres Garcia Jimenez" <agarcia(at)ids(dot)com(dot)mx> |
---|---|
To: | <pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx> |
Subject: | [Pgsql-ayuda] Consulta jerarquica |
Date: | 2003-12-02 16:39:19 |
Message-ID: | 9543CF39C879974FA068DD5688A728650E791F@smprod01.ids.com.mx |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Saludos:
Quisiera ver si alguien ya ha realizado consultas jerarquicas en Postgres (Algo parecido al Connect by de Oracle), y como es que lo han hecho, agredecere cualquier ayuda ya que soy nuevo en postgress
Por mi patrte estoy intentando resolverlo con una funcion de PLpgSQL
Estoy utilizando una TEMPORARY TABLE llamada arbol y la lleno con algo como lo siguiente:
/* Insertando la Raiz del Arbol */
insert into arbol select mod_id, mod_descripcion, orden,mynivel,mod_id_fk
from seg_modulo
where mod_id_fk is null;
GET DIAGNOSTICS num_reg = ROW_COUNT;
WHILE num_reg>0 LOOP
/* Paso al siguiente nivel del arbol */
mynivel:=mynivel+1;
orden:=orden+1;
/* Inserto el siguiente nivel del arbol donde el padre son lo reg del nivel anterior */
insert into arbol
select mod_id, mod_descripcion, orden,mynivel,mod_id_fk from seg_modulo
where mod_id_fk in (select id from arbol where nivel=mynivel-1);
/* Valido si hubo registros que pudieran tener mas hijos */
GET DIAGNOSTICS num_reg = ROW_COUNT;
END LOOP;
RETURN NEXT SELECT id,descripcion,orden,nivel,padre FROM arbol;
RETURN;
Una vez hecho esto trato de obtener los valores con una consulta como la siguiente:
SELECT * FROM FN_ARBOL();
El prpoblema es que no me trae ningun registro pese a que la tbla temporal si contiene los registros, ¿no se si estoy utilizando correctamente el RETURN NEXT?
bueno como dije antes agradecesco cualquier ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2003-12-02 17:51:15 | Re: [Pgsql-ayuda] FW: Mailman results for Pgsql-ayuda |
Previous Message | Andres Lascar Giraldo | 2003-12-02 16:38:39 | [Pgsql-ayuda] FW: Mailman results for Pgsql-ayuda |