error showing- rep 1401- function returned without value

function B_51FormatTrigger return boolean is
   
  M_REC NUMBER(2);  
  M_AUTH VARCHAR2(10);
begin
M_REC :=0;
IF :invh_cust_code not in ('C00000') then
IF :invH_DT > TO_DATE('31/12/2017','DD/MM/YYYY') THEN
      IF NVL(:CUST_FLEX_07,'0') <> '0'  THEN
            IF NVL(:CS_TAX,-1) <0 THEN
          return (TRUE);
   else
                  return (FALSE);
   end if;
            ELSE
                  RETURN (TRUE);
END IF;
END IF;
else
      return (false);
      end if;
end
Sujith SAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

johnsoneSenior Oracle DBACommented:
First, format your code so you can see the matching if and ends.
FUNCTION B_51formattrigger 
RETURN BOOLEAN 
IS 
  m_rec  NUMBER(2); 
  m_auth VARCHAR2(10); 
BEGIN 
    m_rec := 0; 

    IF :invh_cust_code NOT IN ( 'C00000' ) THEN 
      IF :invH_DT > To_date('31/12/2017', 'DD/MM/YYYY') THEN 
        IF Nvl(:CUST_FLEX_07, '0') <> '0' THEN 
          IF Nvl(:CS_TAX, -1) < 0 THEN 
            RETURN ( TRUE ); 
          ELSE 
            RETURN ( FALSE ); 
          END IF; 
        ELSE 
          RETURN ( TRUE ); 
        END IF; 
      END IF; 
    ELSE 
      RETURN ( FALSE ); 
    END IF; 
END 

Open in new window

Looks like you are missing one else case:
FUNCTION B_51formattrigger 
  RETURN BOOLEAN 
IS 
  m_rec  NUMBER(2); 
  m_auth VARCHAR2(10); 
BEGIN 
  m_rec := 0; 
  IF :invh_cust_code NOT IN ( 'C00000' ) THEN 
    IF :invH_DT > To_date('31/12/2017', 'DD/MM/YYYY') THEN 
      IF Nvl(:CUST_FLEX_07, '0') <> '0' THEN 
        IF Nvl(:CS_TAX, -1) < 0 THEN 
          RETURN ( TRUE ); 
        ELSE 
          RETURN ( FALSE ); 
        END IF; 
      ELSE 
        RETURN ( TRUE ); 
      END IF; 
    ELSE              -- this is missing 
      RETURN ( ??? ); -- this is missing 
    END IF; 
  ELSE 
    RETURN ( FALSE ); 
  END IF; 
END 

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
forms6i,

From novice to tech pro — start learning today.