Object References : Nested Object Table « Object Oriented « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL> CREATE OR REPLACE TYPE address AS OBJECT
  2              (line1 VARCHAR2(20),
  3               line2 VARCHAR2(20),
  4               city VARCHAR2(20),
  5               state_code VARCHAR2(2),
  6               zip VARCHAR2(13),
  7    MEMBER FUNCTION get_address RETURN VARCHAR2,
  8    MEMBER PROCEDURE set_address
  9              (addressLine1 VARCHAR2,
 10               addressLine2 VARCHAR2,
 11               address_city VARCHAR2,
 12               address_state VARCHAR2,
 13               address_zip VARCHAR2)
 14  );
 15  /

Type created.

SQL> CREATE OR REPLACE TYPE BODY address AS
  2    MEMBER FUNCTION get_address RETURN VARCHAR2
  3    IS
  4    BEGIN
  5      RETURN (SELF.line1||' '||SELF.line2||' '||SELF.city||', '||SELF.state_code||' '||SELF.zip);
  6    END get_address;
  7    MEMBER PROCEDURE set_address (addressLine1 VARCHAR2,
  8                  addressLine2 VARCHAR2,
  9                  address_city VARCHAR2,
 10                  address_state VARCHAR2,
 11                  address_zip VARCHAR2)
 12    IS
 13    BEGIN
 14      line1 :=addressLine1;
 15
 16      line2 :=addressLine2;
 17
 18      city :=address_city;
 19
 20      state_code :=address_state;
 21
 22      zip :=address_zip;
 23    END set_address;
 24  END;
 25  /

Type body created.

SQL> CREATE TABLE employee
  2  (empid number(10)PRIMARY KEY,
  3   lastname varchar2(30)NOT NULL,
  4   firstname varchar2(30)NOT NULL,
  5   middle_initial varchar2(2),
  6   emp_address REF address);

Table created.

SQL>
SQL>
SQL> DROP TABLE employee;

Table dropped.

SQL>








32.10.Nested Object Table
32.10.1.Object References
32.10.2.Inserting Rows into the nested-object table
32.10.3.Selecting Rows from the nested-object table
32.10.4.Select a single row from the nested-object table
32.10.5.A row is selected based on the inner column object
32.10.6.Stored Nested Tables
32.10.7.DML on whole Nested Tables
32.10.8.UPDATE on whole Nested Tables
32.10.9.DELETE on whole Nested Tables
32.10.10.SELECT on whole Nested Tables