Access member variable in member function in a type : Object Method « Object Oriented Database « Oracle PL / SQL






Access member variable in member function in a type

    
SQL>
SQL>
SQL> create or replace
  2  type employee as object(
  3    name varchar2(100),
  4    empno number,
  5    hiredate date,
  6    vacation_used 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_used <= 10 then
  6        self.vacation_used := self.vacation_used + p_days;
  7      else
  8        raise_application_error(
  9          -20001,
 10          'You are ' || to_char(p_days + self.vacation_used - 10) ||
 11          ' days over your vacation limit.' );
 12      end if;
 13    end;
 14  end;
 15  /

Type body created.

SQL>
SQL>
SQL> create or replace
  2  type sales_rep
  3  under employee(
  4    salary number,
  5    commission number,
  6    overriding member procedure give_raise( p_increase number ),
  7    member procedure give_commission( p_increase number ),
  8    overriding member function yearly_compensation return number
  9  )
 10  /

Type created.

SQL> create or replace
  2  type body sales_rep as
  3   overriding member procedure give_raise( p_increase number ) is
  4   begin
  5     self.salary := self.salary + (self.salary * (p_increase/100));
  6   end;
  7   member procedure give_commission( p_increase number ) is
  8   begin
  9     self.commission := self.commission + p_increase;
 10   end;
 11   overriding member function yearly_compensation return number is
 12   begin
 13     return self.salary + self.commission;
 14   end;
 15  end;
 16  /

Type body created.

SQL>
SQL> drop type sales_rep;

Type dropped.

SQL> drop type employee;

Type dropped.

SQL>
SQL>

   
    
    
  








Related examples in the same category

1.Creating User-defined Functions for Column Objects
2.Use method from object in select command
3.Compare two type object instances
4.A sample object type with a MAP member function
5.A sample object type with an ORDER member function.
6.This script builds a sample object type with member variables and functions
7.This script demonstrates the static method.
8.This script demonstrates the order method.
9.Type with member procedure
10.Demonstrates the member method.