Oracle PL/SQL Language Pocket Reference, 4th Edition
by Steven Feuerstein, Bill Pribyl, Chip Dawes
Object-Oriented Features
In the Oracle database, an object type combines attributes (data structures) and methods (functions and procedures) into a single programming construct. The object type construct allows programmers to define their own reusable datatypes for use in PL/SQL programs and table and column definitions. An object type must be created in a database before it can be used in a PL/SQL program.
An instance of an object type is an object in the same way that a variable is an instance of a scalar type. Objects are either persistent (stored in the database) or transient (stored only in PL/SQL variables). Objects can be stored in a database as a row in a table (a row object) or as a column in a table. A table of row objects can be created with syntax such as this:
CREATE TABLEtable_nameOFobject_type;
When stored in such a table, the object (row) has a system-generated Object IDentifier (OID) that is unique throughout the database.
Object Types
An object type has two parts: a specification and a body. The specification is required and contains the attributes and method specifications. The syntax for creating the object type specification is:
CREATE [OR REPLACE] TYPEobj_type_name[ AUTHID { CURRENT_USER | DEFINER } ] { { IS | AS } OBJECT | UNDERparent_type_name} (attribute_name datatype,..., [ [ [NOT] OVERRIDING ] [ [NOT] FINAL ] [ [NOT] INSTANTIABLE ]method_spec,...,] [PRAGMA RESTRICT_REFERENCES(program_name,purities)] ) [ [NOT] FINAL ] [ [NOT] INSTANTIABLE ];
where