Re: Tabla temporal

From: Silvio Quadri <silvioq(at)gmail(dot)com>
To: Fernandos Siguenza <fsigu(at)hotmail(dot)com>
Cc: Foro Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Tabla temporal
Date: 2009-02-11 14:50:08
Message-ID: 61dc71dc0902110650x2a5933e5h464dd3b0e6087073@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Ferro 2009-02-11 14:51:26 Re: orden de registro
Previous Message Javier Chávez B. 2009-02-11 14:48:54 Re: Migracion Sybase a Postgres