RE: Tabla temporal

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <fsigu(at)hotmail(dot)com>, <silvioq(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Tabla temporal
Date: 2009-02-11 15:48:54
Message-ID: BLU137-W1871351FB643E705D2E37DE3BA0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Si mal no recuerdso creo que no se puede crear tablas temporales en funcinoes debes usar EXECUTE para poder hacerlo y que
funcione, aunque no recuerdo si esto se soluciono en 8.3.5?
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087

* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*

From: fsigu(at)hotmail(dot)com
To: silvioq(at)gmail(dot)com
CC: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: [pgsql-es-ayuda] Tabla temporal
Date: Wed, 11 Feb 2009 14:54:51 +0000

No amigo ejecute el procedimiento y no tengo ningun error, pero uso tablas temporales porque necesito crear una tabla con campos que se mostraran como resultado en un reporte, que otra opcion podria usar, ya que no encontre como mas hacer...

> Date: Wed, 11 Feb 2009 12:50:08 -0200
> Subject: Re: [pgsql-es-ayuda] Tabla temporal
> From: silvioq(at)gmail(dot)com
> To: fsigu(at)hotmail(dot)com
> CC: pgsql-es-ayuda(at)postgresql(dot)org
>
> El día 11 de febrero de 2009 12:09, Fernandos Siguenza
> <fsigu(at)hotmail(dot)com> escribió:
> > Amigos, tengo una consulta una tabla temporal tiene las mismas operaciones
> > que una tabla normal??, ya que tengo una funcion en la que uso una tabla
> > temporal, realizo operaciones de insert pero no me funciona no se que estoy
> > haciendo man adjunto envio la funcin que estoy usando
> >
> > CREATE OR REPLACE FUNCTION balanceMensual1(vagecod character varying,
> > vfeccorte date)
> > RETURNS refcursor AS
> > $BODY$
> > DECLARE
> > rBalMensual record;
> > cuenta record;
> > resultado refcursor;
> > BEGIN
> >
> > create temporary table BalMes(asicuecod varchar(20),asideb
> > numeric,asihab numeric,enero numeric,febrero numeric,
> > marzo numeric,abril numeric,mayo numeric,junio numeric,julio
> > numeric,agosto numeric,septiembre numeric,
> > octubre numeric,noviembre numeric,diciembre numeric,grupo character
> > varying(1));
> > for rBalMensual in
> > select extract(MONTH from asifec) as
> > mes,asidet.asicuecod,sum(asidet.asideb) as asideb,sum(asidet.asihab) as
> > asihab,cuegrutip as grupo
> > FROM asicab,asidet,agencias,cuentagrupo
> > WHERE agencias.agecod=asicab.asiagecod
> > and asicab.asiagecod=asidet.asiagecod
> > and asicab.asidoc=asidet.asidoc
> > and asicab.asinum=asidet.asinum
> > and cuentagrupo.cuegrucod=substring(asidet.asicuecod,1,1)
> > and asifec<=vFecCorte
> > group by mes,asidet.asicuecod,cuegrutip
> > ORDER BY mes,asicuecod
> > LOOP
> > if rBalMensual.mes=1 then
> > --verifico si ya hay un registro con el codigo de la cuenta
> > contable en la tabla temporal
> > select into cuenta * from BalMes where
> > asicuecod=rBalMensual.asicuecod;
> > if NOT FOUND then
> > --Aqui esta el problema que cuando no encuantra un
> > registro con el codigo de la cuanta contable realizo un insert en la tabla
> > temporal, pero parece que nunca hace el insert ya que nunca encuentra nada
> > en la tabla osea siempre durante todo el loop ingresa aqui
> > insert into
> > BalMes(asicuecod,asideb,asihab,enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre,grupo)
> > values(rBalMensual.asicuecod,rBalMensual.asideb,rBalMensual.asihab,0,0,0,0,0,0,0,0,0,0,0,0,'A');
> > else
> > update balmes set
> > enero=rBalMensual.asideb-rBalMensual.asihab where
> > asicuecod=rBalMensual.asicuecod;
> > end if;
> > end if;
> > END LOOP;
> > open resultado for select * from balmes;
> > return resultado;
> > END;
> > $BODY$
> > LANGUAGE 'plpgsql' VOLATILE
> >
>
> No te recomiendo crear la tabla temporal en una función.
> ¿No te dio error en tiempo de ejecución?
>
> Silvio
> --
> TIP 7: no olvides aumentar la configuración del "free space map"

Windows Live Hotmail now works up to 70% faster. Sign up today.
_________________________________________________________________
Windows Live Hotmail now works up to 70% faster.
http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_faster_112008

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message jeison gutierrez 2009-02-11 16:08:49 Compilar o Instalar binarios,,,,
Previous Message leonel 2009-02-11 15:14:16 PostgreSQL 8.3.6, 8.1.16 Ubuntu