ERROR EN FUNCION CON MANEJO DE ERRORES
Publicado por lcorredor (1 intervención) el 08/09/2006 16:43:56
buenos dia miren tengo este problema y no se como solucionarlo, poseo esta FUNCTION:
CREATE OR REPLACE FUNCTION p_newuser(int8, int8, "varchar", "varchar", int4, int4, int4, int4, "varchar", int8, "varchar", "varchar")
RETURNS SETOF users AS
$BODY$
declare CANT INT;
BEGIN
CANT:=0;
select count(*) INTO CANT FROM users WHERE ulogin=$11;
IF CANT=0 THEN
INSERT INTO users (cedula,celular,email,fechanacimiento,idcliente,idestado,idroles,nombre,telefono,ulogin,upassword)
values($1,$2,$3,$4,$5,$6,$7,$9,$10,$11,$12);
SELECT * from users where iduser=lastval();
ELSE
RAISE EXCEPTION 'El login del Usuario ya Existe --> %',$11;
END IF;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION p_newuser(int8, int8, "varchar", "varchar", int4, int4, int4, int4, "varchar", int8, "varchar", "varchar") OWNER TO postgres;
Cuando forzo el error funciona perfectamente pero,cuando se hace la cosa bien, dice que el tipo de dato retorno no corresponde , no se si alguien se apiade de mi me colabore por favor gracias.
CREATE OR REPLACE FUNCTION p_newuser(int8, int8, "varchar", "varchar", int4, int4, int4, int4, "varchar", int8, "varchar", "varchar")
RETURNS SETOF users AS
$BODY$
declare CANT INT;
BEGIN
CANT:=0;
select count(*) INTO CANT FROM users WHERE ulogin=$11;
IF CANT=0 THEN
INSERT INTO users (cedula,celular,email,fechanacimiento,idcliente,idestado,idroles,nombre,telefono,ulogin,upassword)
values($1,$2,$3,$4,$5,$6,$7,$9,$10,$11,$12);
SELECT * from users where iduser=lastval();
ELSE
RAISE EXCEPTION 'El login del Usuario ya Existe --> %',$11;
END IF;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION p_newuser(int8, int8, "varchar", "varchar", int4, int4, int4, int4, "varchar", int8, "varchar", "varchar") OWNER TO postgres;
Cuando forzo el error funciona perfectamente pero,cuando se hace la cosa bien, dice que el tipo de dato retorno no corresponde , no se si alguien se apiade de mi me colabore por favor gracias.
Valora esta pregunta


0