create or replace FUNCTION FORMATA_PESSOA(
P_IDTIPO VARCHAR2,
P_CDPESSOA VARCHAR2) RETURN VARCHAR2
AS
   V_FORMATADO VARCHAR2(50);
BEGIN
   IF P_IDTIPO = 'J' THEN
      SELECT SUBSTR(P_CDPESSOA, 1, 2) || '.' ||
             SUBSTR(P_CDPESSOA, 3, 3) || '.' ||
             SUBSTR(P_CDPESSOA, 6, 3) || '/' ||
             SUBSTR(P_CDPESSOA, 9, 4) || '-' ||
             SUBSTR(P_CDPESSOA, 13, 2)
        INTO V_FORMATADO
        FROM DUAL;
   ELSIF P_IDTIPO = 'F' THEN
      SELECT SUBSTR(P_CDPESSOA, 1, 3) || '.' ||
             SUBSTR(P_CDPESSOA, 4, 3) || '.' ||
             SUBSTR(P_CDPESSOA, 7, 3) || '-' ||
             SUBSTR(P_CDPESSOA, 10, 2)
        INTO V_FORMATADO
        FROM DUAL;
   ELSIF P_IDTIPO = 'O' THEN
      SELECT SUBSTR(P_CDPESSOA, 1, 5)
        INTO V_FORMATADO
        FROM DUAL;
   ELSE
      V_FORMATADO := P_CDPESSOA;
   END IF;

   RETURN(V_FORMATADO);
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('FORMATA_PESSOA','5.60.000'); END;
/

