Buenas de nuevo gente,
Verán estoy intentando crear este SP:
Código:
CREATE OR REPLACE FUNCTION pdameempleados(out PCODEMPLEADO integer)
AS
$BODY$
DECLARE txtResultado text;
BEGIN
UPDATE templeados set nombre='clavijo' where cod_empleado=PCODEMPLEADO;
txtResultado := 'select * from templeados';
return txtResultado;
EXCEPTION WHEN OTHERS THEN
PCODEMPLEADO := -1;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Bien, lo que quiero es modificar un registro, despues devolver una select de la tabla y el Parametro de salida. Ya que si ha salido mal, valdrá -1 y sino, seguirá valiendo lo mismo que al introducirlo yo.
El error que me está dando es el siguiente:
"ERROR: RETURN cannot have a parameter in function with OUT parameters at or near "txtResultado"
Estado SQL:42601
Caracter: 249"
Entiendo lo que me dice, que no puedo tener un parametro de salida en una función que devuelve un conjunto de datos. Pero... ¿Realmente no se puede o es que me falta algo?
En fin, espero puedan audarme. Un saludo.
P.D.: También quería preguntar lo siguiente, supongamos que ya tengo hecho el SP y que funciona bien. ¿Como podría llamarlo desde el ejecutor de consultas?
Estaría bien asi?
Declare pParametro integer;
pParametro := 12;
execute pdameempleados(pParametro);
print pParametro; --Para que me muestre por pantalla el valor que tiene el parametro.
¿¿¿????