You can use an object type in the CREATE TABLE statement to indicate the datatype of a column. When the table is created once, you can use the SQL statements to insert an object, call its methods, select its attributes, & update its state.
In the SQL*Plus script shown below, the INSERT statement calls the constructor for the object type Rational, and then inserts the resultant object. The SELECT statements retrieve the value of the attribute num. The UPDATE declaration calls member method reciprocal, that returns a Rational value after exchanging the attributes num and den. Note that the table alias is needed whenever you reference an attribute or method.
CREATE TABLE numbers (rn Rational, ...)
INSERT INTO numbers (rn) VALUES (Rational(3, 62)) -- inserts 3/62
SELECT n.rn.num INTO my_num FROM numbers n ... -- returns 3
UPDATE numbers n SET n.rn = n.rn.reciprocal ... -- yields 62/3
When you instantiate an object in this way, it has no individuality outside the database table. Though, the object type exists separately of any table, and can be used to create objects in the other ways.
In the later illustration, you build a table which stores objects of the type Rational in its rows. These tables, having rows of objects, are known as the object tables. Each column in a row corresponds to the attribute of the object type. The Rows can have various column values.
CREATE TABLE rational_nums OF Rational;
Each row in the object table has an object identifier that uniquely identifies the object stored in that row and serve as a reference to the object.