Oracle8i introduces the following new types described in Using Large Objects (LOBs):
· BLOB
· CLOB
· BFILE
The design of these types allow Oracle Objects for OLE to access them much
faster than Long or Long Raw. For this reason you should convert existing Long Raw
code to BLOB, CLOB and BFILE. However, new applications should only use LOBs
and BFILEs. The OraLOB object should be used to access LOBs and BFILEs, rather
than these Long Raw chunking methods which are provided for backward
compatibility only. Note that OraLob offers maximum control.
For older applications using the Long Raw chunking methods, migration should
be relatively simple with few code changes required. The primary code changes
involve the requirement that NULL BLOBs and CLOBs be updated with "Empty" before
being used.
LOB datatypes differ from LONG and LONG RAW datatypes in several ways:
· A table can contain multiple LOB columns but only one LONG column.
· A table containing one or more LOB columns can be partitioned, but a table
containing a LONG column cannot be partitioned.
· The maximum size of a LOB is four gigabytes, but the maximum size of a LONG is
two gigabytes.
· LOBs support random access to data, but LONGs support only sequential access.
· LOB datatypes (except NCLOB) can be attributes of a user-defined object type
but LONG datatypes cannot.
· LOB client side buffering is available to optimize for multiple small writes.
· LOB data can be stored in operating system files outside of database
tablespaces (BFILES).
To make migration easier, the following methods can be used with BLOBs, CLOBs,
and BFILEs:
AppendChunkAppendChunkByteGetChunkGetChunkByteGetChunkByteExReadChunk