Fwd: comportamiento extraño

From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: pgsql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Fwd: comportamiento extraño
Date: 2007-07-22 21:11:32
Message-ID: c2d9e70e0707221411o3e126dew42b1752ae6532b04@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

FWIW

---------- Forwarded message ----------
From: eduardo cabrera <ecabreraf(at)gmail(dot)com>
Date: Jul 22, 2007 3:48 PM
Subject: Re: [pgsql-es-ayuda] comportamiento extraño
To: Jaime Casanova <systemguards(at)gmail(dot)com>

si era aquello "SELECT *" funciona correcto, y claro 'cantidad' es el 3º campo

gracias

El día 22/07/07, Jaime Casanova < systemguards(at)gmail(dot)com> escribió:
> On 7/22/07, eduardo cabrera < ecabreraf(at)gmail(dot)com> wrote:
> > tengo la siguiente funcion
> >
> > CREATE FUNCTION stock_docu ( BIGINT, BIGINT, TIMESTAMP, TIMESTAMP) RETURNS
> > NUMERIC AS '
> > DECLARE
> > articulo_id ALIAS FOR $1;
> > sucursal_id ALIAS FOR $2;
> > fecha_i ALIAS FOR $3;
> > fecha_t ALIAS FOR $4;
> > foo NUMERIC = 0;
> > parcial NUMERIC;
> > tabla guiadespacho_detalle%ROWTYPE;
> > BEGIN
> > parcial := 0;
> > FOR tabla IN
> > SELECT idguiadespacho, cantidad, idarticulo
> > FROM guiadespacho_detalle
> > WHERE idarticulo = articulo_id
> > AND idguiadespacho IN ( SELECT id
> > FROM guiadespacho
> > WHERE numguiadespacho != ''''
> > AND numguiadespacho is not null
> > AND estado = ''t''
> > AND idsucursal = sucursal_id
> > )
> > LOOP
> > RAISE NOTICE '' - c% | p% | s% %'', tabla.cantidad, parcial, foo,
> > tabla.idarticulo;
> > foo := foo + 1;
> > parcial := CAST(parcial AS NUMERIC) + CAST(tabla.idarticulo AS NUMERIC);
> > RAISE NOTICE '' - c% | p% | s%'', tabla.cantidad, parcial, foo;
> > RAISE NOTICE '' - - -'';
> > END LOOP;
> > return foo;
> > END;
> > ' LANGUAGE 'plpgsql';
> >
> >
> > eso esta bien y todo lo RARO es que la cantidad queda almacenada en
> > tabla.idarticulo y si cambio el orden o quito argumentos en el "SELECT
> > idguiadespacho, cantidad, idarticulo" se comporta distinto (nunca como
> > quiero)
> >
>
> que campos tiene la tabla guiadespacho_detalle? porque el record tabla
> fue declarado como de tipo guiadespacho_detalle%ROWTYPE, pero en el
> select no te arriesgas a hacer un "SELECT *" sino que pones los
> nombres de los campos. Si la tabla tiene mas de 3 campos probablemente
> estas poniendo esos en los sitios incorrectos, eso quiza explique
> porque dices que funciona distinto si sacas los dos primeros campos
> del select.
>
> intenta usando "select *" o declarando la variable tabla como record
>
> --
> Atentamente,
> Jaime Casanova
>
> "Programming today is a race between software engineers striving to
> build bigger and better idiot-proof programs and the universe trying
> to produce bigger and better idiots.
> So far, the universe is winning."
> Richard Cook
>

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message decastro 2007-07-22 22:40:40 Re: Problema reiniciando servidor con pg_ctl start
Previous Message Jaime Casanova 2007-07-22 18:10:31 Re: Problema reiniciando servidor con pg_ctl start