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>
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>
SQL> drop table products;
Table dropped.
SQL>
SQL>