Object Oriented Oracle PLSQL Tutorial

When inserting a row into a table containing a column object, you must supply the attribute for that object using a constructor.
The constructor has the same name as the object type and accepts parameters fo attributes of the object.

SQL> CREATE Or Replace TYPE ProductType AS OBJECT (
  2    id          NUMBER,
  3    name        VARCHAR2(15),
  4    description VARCHAR2(22),
  5    price       NUMBER(5, 2),
  6    days_valid  NUMBER
  7  );
  8  /
Type created.
SQL>
SQL> CREATE TABLE products (
  2    product           ProductType,
  3    count NUMBER
  4  );
Table created.
SQL>
SQL> INSERT INTO products (product,count) VALUES (
  2            ProductType(1, 'AA', 'BBB', 3.95, 10),50
  3  );
1 row created.
SQL>
SQL> INSERT INTO products (product,count) VALUES (
  2            ProductType(2, 'CC', 'DDDD', 2.99, 5),25
  3  );
1 row created.
SQL>
SQL> select * from products;
PRODUCT(ID, NAME, DESCRIPTION, PRICE, DAYS_VALID)     COUNT
----------
PRODUCTTYPE(1, 'AA', 'BBB', 3.95, 10)                 50
PRODUCTTYPE(2, 'CC', 'DDDD', 2.99, 5)                 25
SQL>
SQL> drop table products;
Table dropped.
SQL>