Buenas tardes amigos,
Verán, teniendo el siguiente Procedimiento Almacenado
Código:
CREATE OR REPLACE FUNCTION pinsertarusuario(IN pdni bpchar, IN pnombre bpchar, IN papellido_1 bpchar, IN papellido_2 bpchar, IN pfecha_nacimiento bpchar, IN pcod_provincia bpchar, IN pcod_pais bpchar, IN pciudad bpchar, IN pcodigo_postal bpchar, IN pemail bpchar, IN pclave bpchar, IN ptelefono_movil bpchar, IN pdescripcion bpchar, IN pcod_buscar integer, IN pnotificarme boolean, IN pver_todos boolean, OUT pcod_usuario integer) AS
$BODY$
BEGIN
INSERT INTO tusuarios(dni, nombre, apellido_1, apellido_2,
fecha_nacimiento, cod_provincia, cod_pais,
ciudad, codigo_postal, email, clave,
telefono_movil, descripcion, cod_buscar,
notificarme, ver_todos)
VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16);
PCOD_USUARIO := currval('tusuarios_cod_usuario_seq');
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
¿Podrían decirme, que tengo que hacer para que despues de asignar el valor a PCOD_USUARIO, me devuelva una senencia SQL ?
Es decir, se que tengo que poner que la función devuelve un valor, pero cuando es un conjunto de datos lo que qyuiero devolver... ¿Qué valor tengo que poner al RETURNS?
Quiero que mi SP haga lo que hace, y además depsues de asignar el valor al parametro de salida, me devuelva una sentencia SQL.
Y tambien quiero que dicho SP en caso de error establezca el valor de PCOD_USUARIO a -1.
Bueno, se que son varias preguntas, pero es que estoy iniciándome y bueno... cuando me atasco la forma más rapida de solucionar mi problema es preguntando aqui.
Asi que si alguien puede solucionarme estas dos dudas se lo agradeceré enormemente.
Gracias por todo y un fuerte saludo.
PD: Gracias Seyko, como ves ya estoy dando duramente al plpgsql.