Use type member function in select statement : Select « Object Oriented Database « Oracle PL / SQL






Use type member function in select statement

 
SQL>
SQL>
SQL> create or replace
  2  type person as object (
  3   first_name varchar2(100),
  4   last_name varchar2(100),
  5   dob date,
  6   phone varchar2(100),
  7   member function get_last_name return varchar2,
  8   member function get_phone_number return varchar2 )
  9  not final
 10  /

Type created.

SQL>
SQL>
SQL> create or replace
  2  type body person as
  3    member function get_last_name return varchar2 is
  4    begin
  5      return self.last_name;
  6    end;
  7    member function get_phone_number return varchar2 is
  8    begin
  9      return self.phone;
 10    end;
 11  end;
 12  /

Type body created.

SQL>
SQL> create table person_table( p person );

Table created.

SQL>
SQL>
SQL>
SQL> create or replace
  2  type new_employee under person (
  3    empno number,
  4    hiredate date,
  5    work_phone varchar2(100),
  6    overriding member function get_phone_number return varchar2,
  7    member function get_home_phone_number return varchar2 )
  8  not final
  9  /

Type created.

SQL>
SQL> create or replace
  2  type body new_employee as
  3    overriding member function get_phone_number return varchar2 is
  4    begin
  5      return self.work_phone;
  6    end;
  7    member function get_home_phone_number return varchar2 is
  8    begin
  9      return self.phone;
 10    end;
 11  end;
 12  /

Type body created.

SQL>
SQL>
SQL>  select x.p.get_last_name() last_name,
  2           x.p.phone phone,
  3           treat( x.p as new_employee ).work_phone work_phone,
  4           x.p.get_phone_number() "GET_PHONE_NUMBER()",
  5           treat( x.p as new_employee ).get_phone_number() treat_as_new_employee
  6      from person_table x
  7    /

no rows selected

SQL>
SQL> drop table person_table;

Table dropped.

SQL>
SQL> drop type new_employee;

Type dropped.

SQL>
SQL> drop type person;

Type dropped.

SQL>

 








Related examples in the same category

1.Display the New Table (SELECT * and SELECT by Column Name)
2.Query object table
3.SELECT Only One Column in the Composite
4.SELECT with a WHERE Clause
5.Query data from table based on object
6.SELECTing Individual Columns in TCROs
7.Use the function we created: use the table alias in our SELECT as well as the qualifier
8.Use * to reference column with user-defined type
9.demonstrates SQL operations on object types.
10.Select the object type from the table, rather than the columns.
11.Use %ROWTYPE to select from the relational table.