|Oracle® Database Application Developer's Guide - Object-Relational Features
10g Release 1 (10.1)
Part Number B10799-01
This section describes the new object-relational features of Oracle 10g Release 1 (10.1). New features information from previous releases is also retained to help those users upgrading to the current release.
The following sections describe the new features in Oracle object-relational features:
New object-relational features for Oracle 10g Release 1 (10.1) include the following collection enhancements:
New functionality for nested table and varray storage, including the evolution of varray size and specification of a tablespace when storing nested tables. See "Creating Collection Datatypes".
New functionality for nested table comparisons and ANSI SQL multiset operations for nested tables. See "Operations on Collection Datatypes".
New object-relational features for Oracle9i release 2 (9.2) include:
Character length semantics
Lengths for character types
VARCHAR2 may be specified as a number of characters, instead of bytes, in object attributes and collections even if some of the characters consist of multiple bytes. See "Character Length Semantics ".
In an existing table, you can change the substitutability of an object column by using an
TABLE statement with the
LEVELS clause. See "Modifying Substitutability".
Synonyms can be defined for user-defined types so that a type can be used without having to qualify its name with the name of the schema in which the type was defined. See "Synonyms for User-Defined Types".
User-defined constructor functions make possible custom initialization of newly created object instances. They also make it possible to evolve a type without having to update calls to constructors in existing code to accommodate a newly added attribute. See "Advantages of User-Defined Constructors".
New object-relational features for Oracle9i release 1 (9.0.1) include:
SQL type inheritance
User-defined types can be specialized as subtypes in a SQL type hierarchy. See "Inheritance in SQL Object Types".
Object view hierarchies
Hierarchies can be created of object views based on some or all of the types in a type hierarchy. Object view hierarchies simplify targeting a particular subtype (and perhaps its subtypes) in queries and other operations. See "Object View Hierarchies".
User-defined SQL types and their independent objects can be changed, or evolved, instead of having to be re-created. See "Type Evolution".
User-defined aggregate functions
Custom aggregate functions can be defined for working with complex data. See "User-Defined Aggregate Functions".
Generic and transient datatypes
External procedures can be given fields or parameters of a generic type, such as
SYS.ANYTYPE, that can contain values of any scalar or user-defined type, making it unnecessary to implement multiple versions of the same external procedure just to handle multiple datatypes. See "Transient and Generic Types".
Function-based indexes can be built on type method functions. See "Function-Based Indexes on the Return Values of Type Methods".
Collections (varrays and nested tables) can contain elements that are themselves collections or have attributes that are. See Chapter 3, " Support for Collection Datatypes" and Chapter 5, " Applying an Object Model to Relational Data".
C++ interface to Oracle
A C++ interface (OCCI) to Oracle, built on top of OCI, enables you to use the object-oriented features, native classes, and methods of the C++ programing language to access the Oracle database. See "Oracle C++ Call Interface (OCCI)".
Java object storage
You can now create SQL types mapped to existing Java classes to provide persistent storage for Java objects. Such SQL types are called SQL types of Language Java, or SQLJ types. See "Java: JDBC, Oracle SQLJ, JPublisher, and SQLJ Object Types".