Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/07/2007, 17:50
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Re: Empezando con plpgsql, dudas basicas en SP

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.

¿¿¿????
__________________
Charlie.