CREATE OR REPLACE FUNCTION fn_Nombre_ISS
(
   i_Nombre IN Char
)
RETURN CHAR
IS
   w_Pos1    Integer;
   w_Pos2    Integer;
   w_Pos3    Integer;
   w_Pri_Ape VarChar2(20);
   w_Pri_Nom VarChar2(20);
   w_Seg_Nom VarChar2(20);
BEGIN
   w_Pos1 := InStr(i_Nombre, '/');
   w_Pos2 := InStr(SubStr(i_Nombre,w_Pos1+1,Length(i_Nombre)-w_Pos1), '/') + w_Pos1;
   w_Pos3 := InStr(SubStr(i_Nombre,w_Pos2+1,Length(i_Nombre)-w_Pos2), ' ') + w_Pos2;
   If w_Pos3 = w_Pos2 Then
      w_Pos3 := Length(i_Nombre);
   End If;
   SELECT Decode(w_Pos1, 1, ' ', RTrim(SubStr(i_Nombre,1,w_Pos1-1)))
   INTO w_Pri_Ape
   FROM DUAL;
   SELECT Decode(w_Pos3, w_Pos2+1, ' ', RTrim(SubStr(i_Nombre,w_Pos2+1,w_Pos3-w_Pos2-1)))
   INTO w_Pri_Nom
   FROM DUAL;
   w_Seg_Nom := RTrim(SubStr(i_Nombre,w_Pos3 + 1,Length(i_Nombre)-w_Pos3));
   RETURN(w_Pri_Ape || ' ' || w_Pri_Nom || ' ' || w_Seg_Nom);
END;
/
CREATE PUBLIC SYNONYM fn_Nombre_ISS FOR ADAM.fn_Nombre_ISS;
GRANT ALL ON fn_Nombre_ISS TO ADAMA;
