Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: decastroDate: 2007-07-22 22:40:40
Subject: Re: Problema reiniciando servidor con pg_ctl start
Previous:From: Jaime CasanovaDate: 2007-07-22 18:10:31
Subject: Re: Problema reiniciando servidor con pg_ctl start

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group