Mega Code Archive

 
Categories / Oracle PLSQL / Object Oriented Database
 

Compare user-defined type

SQL> SQL> create or replace   2  type person as object(   3   first_name varchar2(100),   4   last_name varchar2(100) )   5  / Type created. SQL> SQL> alter type person   2  add attribute dob date   3  cascade not including table data   4  / Type altered. SQL> SQL> create or replace   2  type employee as object(   3   name person,   4   empno number,   5   hiredate date,   6   sal number,   7   commission number,   8   order member function match ( p_employee employee ) return integer )   9  / Type created. SQL> SQL> create or replace   2  type body employee as   3   order member function match ( p_employee employee ) return integer is   4   begin   5    if self.empno > p_employee.empno then   6      return 1;   7    elsif self.empno < p_employee.empno then   8      return -1;   9    else  10      return 0;  11    end if;  12   end;  13  end;  14  / Type body created. SQL> SQL> SQL> declare   2   emp1 employee;   3   emp2 employee;   4  begin   5   emp1 := employee( null, 12345, '01-JAN-01', 100, 100 );   6   emp2 := employee( null, 67890, '01-JAN-01', 100, 100 );   7   if emp1 > emp2 then   8     dbms_output.put_line( 'Employee 1 is greater' );   9   end if;  10   if emp1 < emp2 then  11     dbms_output.put_line( 'Employee 2 is greater' );  12   end if;  13   if emp1 = emp2 then  14     dbms_output.put_line( 'Employees are equal' );  15   end if;  16  end;  17  / PL/SQL procedure successfully completed. SQL> SQL> drop type employee; Type dropped. SQL> SQL> drop type person; Type dropped. SQL> SQL>