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

Re: Se puede hacer ?

From: "Raul Andres Duque" <ra_duque(at)yahoo(dot)com(dot)mx>
To: "Gunnar Wolf" <gwolf(at)gwolf(dot)org>
Cc: Oswaldo Hernández <listas(at)soft-com(dot)es>,"Jaime Sierra Gattorno" <jhsgattorno(at)gmail(dot)com>,"pgsql-es-ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Se puede hacer ?
Date: 2008-03-22 15:05:13
Message-ID: 003c01c88c2e$22867300$5800a8c0@amadeus.net.co (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
----- Original Message ----- 
From: "Gunnar Wolf" <gwolf(at)gwolf(dot)org>
To: "Raul Andres Duque" <ra_duque(at)yahoo(dot)com(dot)mx>
Cc: "Oswaldo Hernández" <listas(at)soft-com(dot)es>; "Jaime Sierra Gattorno" 
<jhsgattorno(at)gmail(dot)com>; "pgsql-es-ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Friday, March 21, 2008 8:33 PM
Subject: Re: [pgsql-es-ayuda] Se puede hacer ?


> Raul Andres Duque dijo [Fri, Mar 21, 2008 at 12:48:26PM -0500]:
>> >De esta forma si podrias hacer:
>> >
>> >select setvar('dFecha', '17/03/2008'::date);
>> >
>> >SELECT Sucursal, Sum(Ventas_Gravadas)
>> >      FROM Encabezado_Facturas
>> >      WHERE Fecha_Factura = getvar('dFecha')
>> >
>>
>> Tienes el código de estas funciones setvar y getvar ??
>>
>> De momento no se me ocurre como hacerlas para que acepten un tipo de
>> datos genérico ... tal vez con MUCHAS sobre cargas?
>
> Es trivial :) No van probadas, pero si truenan, no hay mucho que 
> modificar.
>
> CREATE FUNCTION setvar(text, text) RETURNS bool AS $$
>    DECLARE
>        llave_usr ALIAS FOR $1;
> valor_usr ALIAS FOR $2;
>    BEGIN
>        DELETE FROM variables WHERE llave = llave_usr;
> INSERT INTO variables (llave, valor) VALUES (llave_usr, valor_usr);
> RETURN 't';
>    END
> $$ language 'plpgsql';
>
> CREATE FUNCTION getvar(text) RETURNS text AS $$
>    DECLARE
>        llave_usr ALIAS FOR $1;
>        valor_usr text;
>    BEGIN
>        SELECT INTO valor_usr valor FROM variables WHERE llave = llave_usr;
> IF NOT FOUND THEN
>     RETURN NULL;
> END IF;
> RETURN valor_usr;
>    END;
> $$ language 'plpgsql';
>
> Sí, tienes que ser un poco explícito al meterle datos - pero puedes
> hacer los casts en la llamada:
>
> SELECT setvar('bugs', 0::text);
> SELECT getvar('bugs')::integer + 10;
>

Ahí estaba mi duda ... en SIEMPRE almacenas un tipo text y haces CAST. Lo 
que abría que mejorarle a esta implementación "de 5 minutos" sería que si la 
tabla temporal no existe la cree.

Atentamente,

RAUL DUQUE
Bogotá, Colombia


> Claro, no es a prueba de cañonazos, pero es una implementación de
> cinco minutos ;-)
>
> Saludos,
>
> -- 
> Gunnar Wolf - gwolf(at)gwolf(dot)org - (+52-55)5623-0154 / 1451-2244
> PGP key 1024D/8BB527AF 2001-10-23
> Fingerprint: 0C79 D2D1 2C4E 9CE4 5973  F800 D80E F35A 8BB5 27AF 


In response to

pgsql-es-ayuda by date

Next:From: Raul Andres DuqueDate: 2008-03-22 15:12:07
Subject: Re: Probado 8.3.1 con VISTA
Previous:From: leonelDate: 2008-03-22 03:35:48
Subject: Re: Error compilando 8.3.1

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