CREATE OR REPLACE FUNCTION RETORNA_COD_PARC(P_NRPARCELA IN VARCHAR2) RETURN VARCHAR2
AS
V_RESULT          VARCHAR2(03);
V_RESULTAUX       VARCHAR2(03);
V_RESULTAC        VARCHAR2(03);
V_RESULTAD        VARCHAR2(03);
W_A               CHAR(1) := 'A';
W_B               CHAR(1) := 'B';
W_C               CHAR(1) := 'C';
W_D               CHAR(1) := 'D';
W_E               CHAR(1) := 'E';
W_F               CHAR(1) := 'F';
W_G               CHAR(1) := 'G';
W_H               CHAR(1) := 'H';
W_I               CHAR(1) := 'I';
W_J               CHAR(1) := 'J';
W_K               CHAR(1) := 'K';
W_L               CHAR(1) := 'L';
W_M               CHAR(1) := 'M';
W_N               CHAR(1) := 'N';
W_O               CHAR(1) := 'O';
W_P               CHAR(1) := 'P';
W_Q               CHAR(1) := 'Q';
W_R               CHAR(1) := 'R';
W_S               CHAR(1) := 'S';
W_T               CHAR(1) := 'T';
W_U               CHAR(1) := 'U';
W_V               CHAR(1) := 'V';
W_X               CHAR(1) := 'X';
W_W               CHAR(1) := 'W';
W_Y               CHAR(1) := 'Y';
W_Z               CHAR(1) := 'Z';
BEGIN

  V_RESULTAUX := SUBSTR(P_NRPARCELA,3,1);
  V_RESULTAC  := SUBSTR(P_NRPARCELA,2,1);
  V_RESULTAD  := SUBSTR(P_NRPARCELA,1,1);
  V_RESULT    := CASE WHEN V_RESULTAC = '0' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_A
                      WHEN V_RESULTAC = '1' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_B
                      WHEN V_RESULTAC = '2' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_C
                      WHEN V_RESULTAC = '3' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_D
                      WHEN V_RESULTAC = '4' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_E
                      WHEN V_RESULTAC = '5' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_F
                      WHEN V_RESULTAC = '6' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_G
                      WHEN V_RESULTAC = '7' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_H
                      WHEN V_RESULTAC = '8' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_I
                      WHEN V_RESULTAC = '9' AND V_RESULTAD = '1' THEN V_RESULTAUX||W_J
                      WHEN V_RESULTAC = '0' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_K
                      WHEN V_RESULTAC = '1' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_L
                      WHEN V_RESULTAC = '2' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_M
                      WHEN V_RESULTAC = '3' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_N
                      WHEN V_RESULTAC = '4' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_O
                      WHEN V_RESULTAC = '5' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_P
                      WHEN V_RESULTAC = '6' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_Q
                      WHEN V_RESULTAC = '7' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_R
                      WHEN V_RESULTAC = '8' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_S
                      WHEN V_RESULTAC = '9' AND V_RESULTAD = '2' THEN V_RESULTAUX||W_T
                      WHEN V_RESULTAC = '0' AND V_RESULTAD = '3' THEN V_RESULTAUX||W_U
                      WHEN V_RESULTAC = '1' AND V_RESULTAD = '3' THEN V_RESULTAUX||W_V
                      WHEN V_RESULTAC = '2' AND V_RESULTAD = '3' THEN V_RESULTAUX||W_X
                      WHEN V_RESULTAC = '3' AND V_RESULTAD = '3' THEN V_RESULTAUX||W_W
                      WHEN V_RESULTAC = '4' AND V_RESULTAD = '3' THEN V_RESULTAUX||W_Y
                      WHEN V_RESULTAC = '5' AND V_RESULTAD = '3' THEN V_RESULTAUX||W_Z ELSE 'AA' END;
                      
  RETURN V_RESULT;
END;
/