ok, es este:
Código PHP:
CREATE OR REPLACE FUNCTION "schema_buque"."fn_insertar_buque" (p_nombreusuario varchar, p_matricula varchar, p_nombre varchar, p_bandera varchar, p_actividad integer, p_arqueo real, p_capacidad integer, p_total real, p_eslora real, p_manga real, p_puntal real, p_idmuelle integer, p_idsuministro integer, p_indicador varchar, p_fecharenave text, p_lugar varchar) RETURNS varchar AS
$body$
/*
eschema: schema_buque
nombre: fn_insertar_buque():varchar
autor: Jennifer Beuses
fecha: 26/05/2009
organismo: Ministerio del Poder Popular para la Energía y Petróleo - MENPET
función: inserta buques
*/
BEGIN
IF (EXISTS (SELECT 1 FROM tbl_buque where num_matricula = p_matricula)) THEN
RETURN 'Ya existe un buque con esa matricula';
ELSE
BEGIN
INSERT INTO tbl_buque(id_muelle,id_actividad,id_suministro,nombreusuario,num_matricula,nombre,bandera,capacidad_almacenamiento,eslora,manga,puntal,unidadarqueobruto,totalhp,indicador_suministro)
VALUES (p_idmuelle,p_actividad,p_idsuministro,p_nombreusuario,upper(p_matricula),p_nombre,p_bandera,p_capacidad,p_eslora,p_manga,p_puntal,p_arqueo,p_total,p_indicador);
SELECT id FROM tbl_buque WHERE num_matricula=p_matricula
INSERT INTO tbl_renave(id_buque,fecha,lugar)VALUES(id,to_date(p_fecharenave ,'DD/MM/YYYY'),p_lugar);
EXCEPTION
WHEN OTHERS THEN
RETURN 'Ha ocurrido un error al ejecutar la instrucción';
END;
RETURN 'OK';
END IF;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;