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> |
Subject: | Re: Se puede hacer ? |
Date: | 2008-03-22 01:33:57 |
Message-ID: | 20080322013357.GB12416@cajita.gateway.2wire.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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;
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
From | Date | Subject | |
---|---|---|---|
Next Message | Ruben Guinez | 2008-03-22 02:54:30 | Re: Probado 8.3.1 con VISTA |
Previous Message | Raul Andres Duque | 2008-03-21 17:48:26 | Re: Se puede hacer ? |