Re: Cast de Parametros?

From: Miguel Miranda <mmiranda(at)123(dot)com(dot)sv>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Cast de Parametros?
Date: 2005-06-15 22:16:54
Message-ID: 42B0A8D6.5040800@123.com.sv
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Patricio Muñoz wrote:

>
> Envia el cuerpo de la funcion, tal vez ahi este el problema :-)
> Donde utilizas el parametro $2 ?
>

Gracias Patricio, la funcion estaba equivocada (la verdad que no la pase
yo sino un colega :-)
Aqui esta ya corregido el orden de parametros, faltaba el $2

CREATE OR REPLACE FUNCTION provisonar_pines(varchar, integer, numeric,
date, integer)
RETURNS integer AS
$BODY$
DECLARE

/**
* funcion para activar pines en la plataforma nap,
* son pines de productos que se configuran despues de
* generados, ej: americatelcard
* Requisitos: que exista en tabla pines y
* este virgen (cod_estado = 0) y fecha_act sea NULL
*
*/

--parametos
pin alias for $1;
idplan alias for $2;
monto alias for $3;
fecha_exp_fija alias for $4;
promptid alias for $5;
existe_pin int;

BEGIN

--validaciones

SELECT INTO existe_pin COUNT(*)
FROM pines pin
WHERE pin.pin = pin
AND pin.fecha_act IS NULL
AND pin.cod_estado = 0;

IF NOT FOUND THEN
RETURN 1; --pin no activo o no asignado
END IF;

--si pin existe en alguna de las siguientes
--tablas, fue activado anteriormente

SELECT INTO existe_pin COUNT(*)
FROM usergroup usg
WHERE usg.username = pin;

IF FOUND THEN
RETURN 2;
END IF;

SELECT INTO existe_pin rc.username
FROM radcheck
WHERE username = pin;

IF FOUND THEN
RETURN 3;
END IF;

SELECT INTO existe_pin username
FROM radreply
WHERE username = pin;

IF FOUND THEN
RETURN 4;
END IF;

IF monto = 0 THEN
RETURN 5;
END IF;

IF promptid = 0 THEN
RETURN 6;
END IF;

--fin validaciones

UPDATE pines
SET pines.cod_estado = 1,
pines.idplan = idplan,
pines.monto = monto,
pines.fecha_exp_fija = fecha_exp_fija,
pines.fecha_act = CURRENT_DATE
WHERE pin = pin;

INSERT INTO usergroup (username,groupname)
VALUES (pin,'prepago');

INSERT INTO radcheck (username,attribute,op,value)
VALUES (pin,'User-Password','==', pin);

INSERT INTO radreply (username,attribute,op,value)
VALUES (pin,'h323-credit-amount','=','h323-credit-amount='||monto);

INSERT INTO radreply (username,attribute,op,value)
VALUES (pin,'h323-prompt-id','=','h323-prompt-id='||promptid);

RETURN 0;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Igual me da el error que al principio.

---
Miguel

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Martín Marqués 2005-06-15 22:17:42 Re: Cast de Parametros?
Previous Message Miguel Miranda 2005-06-15 21:58:36 Re: Cast de Parametros?