Oracle® Database Application Developer's Guide - Large Objects 10g Release 1 (10.1) Part Number B10796-01 |
|
|
View PDF |
This section describes the new features in the following releases:
The following features are introduced in Oracle Database 10g Release 1 (10.1):
The maximum size limit for LOBs is 8 to 128 terabytes, depending on your database block size. The following APIs support this new size limit:
Previous releases supported LOBs up to a maximum size of 4 GB. For details see "Terabyte-Size LOB Support".
A number of performance enhancements have been added for this release including:
INSERT
, UPDATE
, and SELECT
operations is greatly enhanced in this release. For more information on maximizing LOB performance, see "Temporary LOB Performance Guidelines".Support for LOBs in heterogeneous cross-platform transportable tablespaces is introduced in this release.
See Also:
Oracle Database Administrator's Guide for details on transportable tablespaces |
A set of SQL functions introduced in this release allow you to perform queries and manipulate string data stored in LOB types and other character datatypes using regular expressions.
See Also:
|
This release introduces support for implicit conversions between NCLOB and CLOB datatypes. You can perform operations such as cross-type assignments and parameter passing between these types without losing data or character set formatting properties.
LOB columns are now supported in all types of partitioned index-organized tables.
LogMiner and SQL Apply now support multibyte CLOB and NCLOB data. SQL Apply now also supports LONG data. Support of additional datatypes means that you can now mine a greater variety of data.
A new column named 'ABSTRACT_LOBS'
has been added to the V$TEMPORARY_LOBS
table. This column displays the number of abstract LOBs accumulated in the current session. Abstract LOBs are temporary lobs returned from queries involving XMLType
columns. See the Oracle Database Reference for details on the V$TEMPORARY_LOBS
table.
The following restrictions on LOB features were removed in Oracle Database 10g Release 1:
NCLOB
as an attribute of an object
type at table creation
In previous releases you could not specify an NCLOB
as an attribute of an object
type when creating a table. This restriction no longer applies.
This section describes features introduced in Oracle9i Release 2 (9.2).
This release introduces new PL/SQL APIs with improved features for loading binary and character data from LOBs:
This API enables you to load binary large objects from operating system files into internal persistent LOBs and temporary LOBs.
This API enables you to load character large objects from operating system files into internal persistent LOBs and temporary LOBs. This API performs the proper character set conversions from the BFILE data character set to the destination CLOB/NCLOB character set.
Support for parallel execution of the following DML operations on tables with LOB columns is introduced in this release. These operations run in parallel execution mode only when performed on a partitioned table. If the table is not partitioned, then these operations run in serial execution mode.
The following restrictions are removed in Oracle9i Release 2 (9.2):
This release supports DML BEFORE ROW
Trigger :new
for LOBs. This means that triggers on LOBs follow the same rules as triggers on any other type of column.
Prior to Release 9.2, in a PL/SQL trigger body of an BEFORE
ROW
DML trigger, you could read the :old
value of the LOB, but you could not read the :new
value.
In releases prior to 9.2, if a view with a LOB column has an INSTEAD OF TRIGGER, then you cannot specify a string INSERT/UPDATE into the LOB column. This restriction is removed in release 9.2. For example:
CREATE TABLE t(a LONG); CREATE VIEW v AS SELECT * FROM t; CREATE TRIGGER trig INSTEAD OF insert on v....; ALTER TABLE t MODIFY (a CLOB); INSERT INTO v VALUES ('abc'); /* works now */
You can now create LOB columns in locally managed tablespaces.
You can now store LOBs in AUTO
segment-managed tablespaces.
NCLOB parameters are now allowed as attributes in object types.
Partitioned Index Organized Tables (PIOT) are now supported.
Client-side PL/SQL DBMS_LOB procedures are now supported.
For fetch, in prior releases, you could not use SELECT INTO to bind a character variable to a LOB column. SELECT INTO used to bind LOB locators to the column. This constraint has been removed.
The following LOB features were introduced in Oracle9i Release 1 (9.0.1):
Using the data interface for LOBs, you can bind and define character data for CLOB columns and binary data for BLOB columns. Doing so, enables you to insert data directly into the LOB column and select data from the LOB column without using a LOB locator.
When using a version of the Oracle Database client that differs from the version of the Oracle Database server, queries produce different results when a client application selects a LOB column defining it as a character type or a LOB type. The following table outlines the characteristics of various Oracle Database client and server combinations in this release and prior to this release.
In this release, for the first time, you can access (internal persistent) LOBs using SQL VARCHAR2 semantics, such as SQL string operators and functions. By providing you with an SQL interface, which you are familiar with, accessing LOB data can be greatly facilitated. These semantics are recommended when using small-sized LOBs (~ 10-100KB).
Oracle C++ Call Interface (OCCI) is a new C++ API for manipulating data in an Oracle database. OCCI is organized as an easy-to-use set of C++ classes which enable a C++ program to connect to a database, run SQL statements, insert/update values in database tables, retrieve results of a query, run stored procedures in the database, and access metadata of database schema objects. OCCI API provides advantages over JDBC and ODBC.
The following are new JDBC LOB-related functionality:
Oracle9i introduces support for LOB, VARRAY columns stored as LOBs, and BFILEs in partitioned index-organized tables. Results of queries on LOB columns in these tables is similar to that of LOB columns in conventional (heap-organized) partitioned tables, except for a few minor differences.
OLE DB is an open specification for accessing various types of data from different stores in a uniform way. OLEDB supports the following functions for these LOB types:
This section describes restrictions removed in Oracle9i Release 1 (9.0.1).
In earlier releases, you could not call functions and procedures in DBMS_LOB packages from client-side PL/SQL. This restriction is removed in release version 9.0.1. In this release, you can call DBMS_LOB functions and procedures from client-side or server-side PL/SQL.