Mega Code Archive

 
Categories / Oracle PLSQL / Object Oriented Database
 

Raise error in object memthod

SQL> SQL> SQL> create or replace   2  type employee as object(   3    name varchar2(100),   4    empno number,   5    hiredate date,   6    vacation number,   7    final member procedure vacation( p_days number ),   8    not instantiable member procedure give_raise( p_increase number ),   9    not instantiable member function yearly_compensation return number  10  )  11  not instantiable  12  not final  13  / Type created. SQL> SQL> create or replace   2  type body employee as   3    final member procedure vacation( p_days number ) is   4    begin   5      if p_days + self.vacation <= 10 then   6        self.vacation := self.vacation + p_days;   7      else   8        raise_application_error(   9          -20001,  10          'You are ' || to_char(p_days + self.vacation - 10) ||  11          ' days over your vacation limit.' );  12      end if;  13    end;  14  end;  15  / Type body created. SQL> SQL> SQL> drop type employee; Type dropped. SQL> SQL>