Skip Headers

Table of Contents Image Oracle9i Application Developer's Guide - Large Objects (LOBs)
Release 2 (9.2)

Part Number A96591-01
Go To Documentation Library
Home
Go To Product List
Book List
Go To Index
Index

Master Index

Feedback

Go to next page

Contents

Title and Copyright Information

Send Us Your Comments

Preface

Audience
Organization
Related Documents
Conventions
Documentation Accessibility

What's New with Large Objects (LOBs)?

LOB Features Introduced with Oracle9i, Release 2 (9.2)
LOB Features Introduced with Oracle9i, Release 1 (9.0.1)
LOB Features Introduced with Oracle8i Release 2 (8.1.6)
LOB Features Introduced with Oracle8i, Release 8.1.5

1 Introduction to LOBs

Why Use LOBs?
Unstructured Data
LOB Datatype Helps Support Internet Applications
Using XML, LOBs, and Oracle Text (interMedia Text)
Why Not Use LONGs?
LONG-to-LOB Migration API
SQL Semantics Support for LOBs
Partitioned Index-Organized Tables and LOBs
Extensible Indexing on LOBs
Function-Based Indexing on LOBs
XML Documents Can be Stored in XMLType Columns as CLOBs
Compatibility and Migration Issues
Examples in This Guide

2 Basic LOB Components

The LOB Datatype
Internal LOBs
External LOBs (BFILEs)
Internal LOBs Use Copy Semantics, External LOBs Use Reference Semantics
Varying-Width Character Data
Using DBMS_LOB.LOADFROMFILE and Functions that Access OCI
LOB Value and Locators
Inline storage of the LOB value
LOB Locators
Setting the LOB Column/Attribute to Contain a Locator
Accessing a LOB Through a Locator
Creating Tables that Contain LOBs
Initializing Internal LOBs to NULL or Empty
Initializing LOBs Example Using Table Multimedia_tab
Initializing Internal LOB Columns to a Value
Initializing External LOBs to NULL or a File Name

3 LOB Support in Different Programmatic Environments

Eight Programmatic Environments Operate on LOBs
Comparing the LOB Interfaces
Using PL/SQL (DBMS_LOB Package) To Work With LOBs
Provide a LOB Locator Before Invoking the DBMS_LOB Routine
PL/SQL - LOB Guidelines
PL/SQL Functions and Procedures that Operate on LOBs
PL/SQL Functions/Procedures To Modify BLOB, CLOB, and NCLOB Values
PL/SQL Functions/Procedures To Read or Examine Internal and External
LOB Values
PL/SQL Functions/Procedures To Operate on Temporary LOBs
PL/SQL Read-Only Functions/Procedures for BFILEs
PL/SQL Functions/Procedures To Open and Close Internal and External LOBs
Using C (OCI) To Work With LOBs
Set CSID Parameter To OCI_UCS2ID to Read/Write in UCS2
Offset and Amount Parameters: Fixed-Width Versus Varying-Width,
Character or Byte
OCILobLoadFromFile: Specify Amount Parameter to be Less than Length of BFILE
OCILobRead: Specify Amount Parameter to be 4 gigabytes - 1
OCI LOB Examples
Further Information About OCI
OCI Functions that Operate on BLOBs, BLOBs, NCLOBs, and BFILEs
OCI Functions To Modify Internal LOB (BLOB, CLOB, and NCLOB) Values
OCI Functions To Read or Examine Internal LOB and External LOB (BFILE) Values
OCI Functions For Temporary LOBs
OCI Read-Only Functions For BFILEs
OCI LOB Locator Functions
OCI LOB-Buffering Functions
OCI Functions To Open and Close Internal and External LOBs
OCI Example -- Is the LOB Open: main() and seeIfLOBIsOpen
Using C++ (OCCI) To Work With LOBs
Distinct Classes for Each LOB Type
Offset and Amount Parameters: Fixed-Width Versus Varying-Width,
Character or Byte
Loading from Files with OCCIClob.copy() and OCCIBlob.copy(): Amount Parameter
OCCIClob.read(), OCCIBlob.read(), and OCCIBfile.read():Amount Parameter
Further Information About OCCI
OCCI Methods that Operate on BLOBs, BLOBs, NCLOBs, and BFILEs
OCCI Methods To Modify Internal LOB (BLOB, CLOB, and NCLOB) Values
OCCI Methods To Read or Examine Internal LOB and BFILE Values
OCCI Read-Only Methods For BFILEs
Other OCCI LOB Methods
OCCI Methods To Open and Close Internal and External LOBs
Using C/C++ (Pro*C) To Work with LOBs
First Provide an Allocated Input Locator Pointer that Represents LOB
Pro*C/C++ Statements that Operate on BLOBs, CLOBs, NCLOBs, and BFILEs
Pro*C/C++ Embedded SQL Statements To Modify Internal LOB Values
Pro*C/C++ Embedded SQL Statements To Read or Examine Internal and External LOB Values
Pro*C/C++ Embedded SQL Statements For Temporary LOBs
Pro*C/C++ Embedded SQL Statements For BFILEs
Pro*C/C++ Embedded SQL Statements For LOB Locators
Pro*C/C++ Embedded SQL Statements For LOB Buffering
Pro*C/C++ Embedded SQL Statements To Open and Close Internal
and External LOBs
Using COBOL (Pro*COBOL) to Work with LOBs
First Provide an Allocated Input Locator Pointer that Represents LOB
Pro*COBOL Statements that Operate on BLOBs, CLOBs, NCLOBs, and BFILEs
Pro*COBOL Embedded SQL Statements To Modify Internal LOB Values
Pro*COBOL Embedded SQL Statements To Read or Examine Internal
and External LOB Values
Pro*COBOL Embedded SQL Statements For Temporary LOBs
Pro*COBOL Embedded SQL Statements For BFILEs
Pro*COBOL Embedded SQL Statements For LOB Locators
Pro*COBOL Embedded SQL Statements For LOB Buffering
Pro*COBOL Embedded SQL Statements To Open and Close Internal LOBs
and BFILEs
Using Visual Basic (Oracle Objects for OLE (OO4O)) to Work with LOBs
OO4O Syntax Reference
OraBlob, OraClob, and OraBfile Object Interfaces Encapsulate Locators
Example of OraBlob and OraBfile
OO4O Methods and Properties to Access Data Stored in LOBs
OO4O Methods To Modify BLOB, CLOB, and NCLOB Values
OO4O Methods To Read or Examine Internal and External LOB Values
OO4O Methods To Open and Close External LOBs (BFILEs)
OO4O Methods For Internal LOB-Buffering
OO4O Properties For Operating on LOBs
OO4O Read-Only Methods For External Lobs (BFILEs)
OO4O Properties For Operating on External LOBs (BFILEs)
Using Java (JDBC) To Work with LOBs
Changing Internal Persistent LOBs Using Java
Reading Internal Persistent LOBs and External LOBs (BFILEs) with Java
Calling DBMS_LOB Package From Java (JDBC)
Referencing LOBs Using Java (JDBC)
JDBC Syntax References and Further Information
JDBC Methods for Operating on LOBs
JDBC oracle.sql.BLOB Methods To Modify BLOB Values
JDBC oracle.sql.BLOB Methods To Read or Examine BLOB Values
JDBC oracle.sql.BLOB Methods and Properties for BLOB-Buffering
JDBC oracle.sql.CLOB Methods To Modify CLOB Values
JDBC oracle.sql.CLOB Methods To Read or Examine CLOB Value
JDBC oracle.sql.CLOB Methods and Properties for CLOB-Buffering
JDBC oracle.sql.BFILE Methods To Read or Examine External LOB (BFILE) Values
JDBC oracle.sql.BFILE Methods and Properties for BFILE-Buffering
JDBC: OracleBlob and OracleClob Do Not Work in Oracle8i 8.1.x and
Higher Releases
JDBC Temporary LOB APIs
JDBC: Opening and Closing LOBs
JDBC: Opening and Closing BLOBs
JDBC: Opening and Closing CLOBs
JDBC: Opening and Closing BFILEs
Trimming LOBs using JDBC
JDBC: New LOB Streaming APIs
New CLOB Streaming APIs
New BFILE Streaming APIs
JDBC and Empty LOBs
OLEDB (Oracle Provider for OLEDB -- OraOLEDB)

4 Managing LOBs

Rules for using Directory Objects and BFILEs
DBA Actions Required Prior to Working with LOBs
Set Maximum Number of Open BFILEs
Using SQL DML for Basic Operations on LOBs
Changing Tablespace Storage for a LOB
Managing Temporary LOBs
Using SQL*Loader to Load LOBs
LOBFILES
Inline versus Out-of-Line LOBs
Loading InLine and Out-Of-Line Data into Internal LOBs Using SQL*Loader
SQL*Loader Performance: Loading Into Internal LOBs
Loading Inline LOB Data
Loading Inline LOB Data in Predetermined Size Fields
Loading Inline LOB Data in Delimited Fields
Loading Inline LOB Data in Length-Value Pair Fields
Loading Out-Of-Line LOB Data
Loading One LOB Per File
Loading Out-of-Line LOB Data in Predetermined Size Fields
Loading Out-of-Line LOB Data in Delimited Fields
Loading Out-of-Line LOB Data in Length-Value Pair Fields
SQL*Loader LOB Loading Tips
LOB Restrictions

5 Large Objects: Advanced Topics

Introducing Large Objects: Advanced Topics
Read Consistent Locators
A Selected Locator Becomes a Read Consistent Locator
Updating LOBs and Read-Consistency
Updating LOBs Via Updated Locators
Example of Updating a LOB Using SQL DML and DBMS_LOB
Example of Using One Locator to Update the Same LOB Value
Example of Updating a LOB with a PL/SQL (DBMS_LOB) Bind Variable
LOB Locators Cannot Span Transactions
Example of Locator Not Spanning a Transaction
LOB Locators and Transaction Boundaries
Transaction IDs: Reading and Writing to a LOB Using Locators
Non-Serializable Example: Selecting the Locator with No Current Transaction
Non-Serializable Example: Selecting the Locator within a Transaction
LOBs in the Object Cache
LOB Buffering Subsystem
Advantages of LOB Buffering
Guidelines for Using LOB Buffering
LOB Buffering Usage Notes
Flushing the LOB Buffer
Flushing the Updated LOB
Using Buffer-Enabled Locators
Saving Locator State to Avoid a Reselect
OCI Example of LOB Buffering
Creating a Varray Containing References to LOBs
LOBs in Partitioned Index-Organized Tables
Example of LOB Columns in Partitioned Index-Organized Tables
Restrictions for LOBs in Partitioned Index-Organized Tables
Range Partitioned Index-Organized Table LOB Restrictions
Hash Partitioned Index-Organized Table LOB Restrictions

6 Frequently Asked Questions about LOBs

Converting Data Types to LOB Data Types
Can I Insert or Update Any Length Data Into a LOB Column?
Does COPY LONG to LOB Work if Data is > 64K?
General
How Do I Determine if the LOB Column with a Trigger is Being Updated?
Reading and Loading LOB Data: What Should Amount Parameter Size Be?
Is LOB Data Lost After a Crash?
Index-Organized Tables (IOTs) and LOBs
Is Inline Storage Allowed for LOBs in Index-Organized Tables?
Initializing LOB Locators
When Do I Use EMPTY_BLOB() and EMPTY_CLOB()?
How Do I Initialize a BLOB Attribute Using EMPTY_BLOB() in Java?
JDBC, JPublisher and LOBs
How Do I Insert a Row With Empty LOB Locator into Table Using JDBC?
How Do I setData to EMPTY_BLOB() Using JPublisher?
JDBC: Do OracleBlob and OracleClob Work in 8.1.x?
How Do I Manipulate LOBs With the 8.1.5 JDBC Thin Driver?
Is the FOR UPDATE Clause Needed on SELECT When Writing to a LOB?
What Does DBMS_LOB.ERASE Do?
Can I Use putChars()?
Manipulating CLOB CharSetId in JDBC
Why is Inserting into BLOBs Slower than into LONG Raws?
Why Do I Get an ORA-03127 Error with LobLength on a LONG Column?
How Do I Create a CLOB Object in a Java Program?
How do I Load a 1MB File into a CLOB Column?
How Do We Improve BLOB and CLOB Performance When Using
JDBC Driver To Load?
LOB Indexing
Is LOB Index Created in Same Tablespace as LOB Data?
Indexing: Why is a BLOB Column Removed on DELETing but not a BFILE Column?
Which Views Can I Query to Find Out About a LOB Index?
LOB Storage and Space Issues
What Happens If I Specify LOB Tablespace and ENABLE STORAGE IN ROW?
What Are the Pros and Cons of Storing Images in a BFILE Versus a BLOB?
When Should I Specify DISABLE STORAGE IN ROW?
Do <4K BLOBs Go Into the Same Segment as Table Data,
>4K BLOBs Go Into a Specified Segment?
Is 4K LOB Stored Inline?
How is a LOB Locator Stored If the LOB Column is EMPTY_CLOB() or
EMPTY_BLOB() Instead of NULL? Are Extra Data Blocks Used For This?
Storing CLOBs Inline: DISABLING STORAGE and Space Used
Should I Include a LOB Storage Clause When Creating Tables With Varray Columns?
LONG to LOB Migration
How Can We Migrate LONGs to LOBs, If Our Application Cannot Go Down?
Converting Between Different LOB Types
Is Implicit LOB Conversion Between Different LOB Types Allowed?
Performance
What Can We Do To Improve the Poor LOB Loading Performance When Using
Veritas File System on Disk Arrays, UNIX, and Oracle?
Is There a Difference in Performance When Using DBMS_LOB.SUBSTR
Versus DBMS_LOB.READ?
Are There Any White Papers or Guidelines on Tuning LOB Performance?
When Should I Use Chunks Over Reading the Whole Thing?
Is Inlining the LOB a Good Idea and If So When?
How Can I Store LOBs >4Gb in the Database?
Why is Performance Affected When Temporary LOBs are Created
in a Called Routine?
PL/SQL
UPLOAD_AS_BLOB

7 Modeling and Design

Selecting a Datatype
LOBs Compared to LONG and LONG RAW Types
Character Set Conversions: Varying-Width and Multi-byte Fixed-Width
Character Data
Selecting a Table Architecture
LOB Storage
Where are NULL Values in a LOB Column Stored?
Defining Tablespace and Storage Characteristics for Internal LOBs
LOB Storage Characteristics for LOB Column or Attribute
TABLESPACE and LOB Index
PCTVERSION
CACHE / NOCACHE / CACHE READS
LOGGING / NOLOGGING
CHUNK
ENABLE | DISABLE STORAGE IN ROW
Guidelines for ENABLE or DISABLE STORAGE IN ROW
How to Create Gigabyte LOBs
Example 1: Creating a Tablespace and Table to Store Gigabyte LOBs
Example 2: Creating a Tablespace and Table to Store Gigabyte LOBs
LOB Locators and Transaction Boundaries
Binds Greater Than 4,000 Bytes in INSERTs and UPDATEs
Binds Greater than 4,000 Bytes are Now Allowed For LOB INSERTs and UPDATEs
Binds of More Than 4,000 Bytes ... No HEX to RAW or RAW to HEX Conversion
4,000 Byte Limit On Results of SQL Operator
Binds of More Than 4,000 Bytes: Restrictions
Example: PL/SQL - Using Binds of More Than 4,000 Bytes in INSERT and UPDATE
Example: PL/SQL - Binds of More Than 4,000 Bytes -- Inserts Not Supported
Example: PL/SQL - 4,000 Byte Result Limit in Binds of More than 4,000 Bytes
Example: C (OCI) - Binds of More than 4,000 Bytes For INSERT and UPDATE
OPEN, CLOSE, and ISOPEN Interfaces for Internal LOBs
Example 1: Correct Use of OPEN/CLOSE Calls to LOBs in a Transaction
Example 2: Incorrect Use of OPEN/CLOSE Calls to a LOB in a Transaction
LOBs in Index Organized Tables (IOT)
Example of Index Organized Table (IOT) with LOB Columns
Manipulating LOBs in Partitioned Tables
Creating and Partitioning a Table Containing LOB Data
Creating an Index on a Table Containing LOB Columns
Exchanging Partitions Containing LOB Data
Adding Partitions to Tables Containing LOB Data
Moving Partitions Containing LOBs
Splitting Partitions Containing LOBs
Indexing a LOB Column
Functional Indexes on LOB Columns
SQL Semantics Support for LOBs
Improved LOB Usability: Accessing LOBs Using SQL "Character" Functions
SQL and PL/SQL VARCHAR2 Functions/Operators Now Allowed for CLOBs
PL/SQL Relational Operators Now Allowed for LOBs
SQL and PL/SQL CHAR to CLOB Conversion Functions
Non-Supported SQL Functionality for LOBs
Using SQL Functions and Operators for VARCHAR2s on CLOBs
UNICODE Support for VARCHAR2 and CLOB
SQL Features Where LOBs Cannot be Used
How SQL VARCHAR2/RAW Semantics Apply to CLOBs/BLOBs
Defining CHAR Buffer on CLOB
Accepting CLOBs in VARCHAR2 Operators/Functions
Returning CLOB Values from SQL Functions/Operators
IS [NOT] NULL in VARCHAR2s and CLOBs
SQL RAW Type and BLOBs
SQL DML Changes For LOBs
SQL Functions/Operators for VARCHAR2s/RAWs and CLOBs/BLOBs
PL/SQL Statements and Variables: New Semantics Changes
Implicit Conversions Between CLOB and VARCHAR2
PL/SQL Example 1: Prior Release SQL Interface for a
CLOB/VARCHAR2 Application
PL/SQL Example 2: Accessing CLOB Data When Treated as VARCHAR2s
PL/SQL Example 3: Defining a CLOB Variable on a VARCHAR2
Explicit Conversion Functions
VARCHAR2 and CLOB in PL/SQL Built-in Functions
PL/SQL Example 4: CLOB Variables in PL/SQL
PL/SQL Example 5: Change in Locator-Data Linkage
PL/SQL Example 6: Freeing Temporary LOBs Automatically and Manually
PL/SQL CLOB Comparison Rules
Interacting with SQL and PL/SQL in OCI and Java Interfaces
Performance Attributes When Using SQL Semantics with LOBs
Inserting More than 4K Bytes Data Into LOB Columns
Temporary LOB Creation/Deallocation
Performance Measurement
User-Defined Aggregates and LOBs
UDAGs: DDL Support
UDAGs: DML and Query Support

8 Migrating From LONGs to LOBs

Introducing LONG-to-LOB Migration
Using the LONG-to-LOB API Results in an Easy Migration
Guidelines for Using LONG-to-LOB API
Using ALTER TABLE
LONG-to-LOB API and OCI
LONG-to-LOB API and PL/SQL
Migrating Existing Tables from LONG to LOB
Migrating LONGs to LOBs: Using ALTER TABLE to Change
LONG Column to LOB Types
LONG-to-LOB Migration Limitations
LONGs, LOBs, and NULLs
Using LONG-to-LOB API with OCI
Guidelines for Using LONG-to-LOB API for LOBs with OCI
Using OCI Functions to Perform INSERT or UPDATE on LOBs
Using OCI Functions to Perform FETCH on LOBs
Using SQL and PL/SQL to Access LONGs and LOBs
Using SQL and PL/SQL to Access LOBs
Implicit Assignment and Parameter Passing
Explicit Conversion Functions
VARCHAR2 and CLOB in PL/SQL Built-In Functions
PL/SQL and C Binds from OCI
Calling PL/SQL and C Procedures from SQL or PL/SQL
Applications Requiring Changes When Converting From LONGs to LOBs
Overloading with Anchored Types
Implicit Conversion of NUMBER, DATE, ROW_ID, BINARY_INTEGER,
and PLS_INTEGER to LOB is Not Supported
No Implicit Conversions of BLOB to VARCHAR2, CHAR, or CLOB to RAW
or LONG RAW
Using utldtree.sql to Determine Where Your Application Needs Change
Examples of Converting from LONG to LOB Using Table Multimedia_tab
Converting LONG to LOB Example 1: More than 4K Binds and Simple INSERTs
Converting LONG to LOB Example 2: Piecewise INSERT with Polling
Converting LONG to LOB Example 3: Piecewise INSERT with Callback
Converting LONG to LOB Example 4: Array insert
Converting LONG to LOB Example 5: Simple Fetch
Converting LONG to LOB Example 6: Piecewise Fetch with Polling
Converting LONG to LOB Example 7: Piecewise Fetch with Callback
Converting LONG to LOB Example 8: Array Fetch
Converting LONG to LOB Example 9: Using PL/SQL in INSERT, UPDATE
and SELECT
Converting LONG to LOB Example 10: Assignments and Parameter Passing
in PL/SQL
Converting LONG to LOB Example 11: CLOBs in PL/SQL Built-In Functions
Converting LONG to LOB Example 12: Using PL/SQL Binds from OCI on LOBs
Converting LONG to LOB Example 13: Calling PL/SQL and C Procedures
from PL/SQL
Summary of New Functionality Associated with the LONG-to-LOB API
OCI Functions
SQL Statements
PL/SQL Interface
Compatibility and Migration
Performance
Frequently Asked Questions (FAQs): LONG to LOB Migration
Moving From LOBs Back to LONGs
Is CREATE VIEW Needed?
Are OCI LOB Routines Obsolete?
PL/SQL Issues
Retrieving an Entire Image if Less Than 32K
Triggers in LONGs and LOBs

9 LOBS: Best Practices

Using SQL*Loader
Loading XML Documents Into LOBs With SQL*Loader
LOB Performance Guidelines
General Performance Guidelines
Temporary LOB Performance Guidelines
Moving Data to LOBs in a Threaded Environment
Incorrect procedure
The Correct Procedure
Migrating from LONGs to LOBs

10 Internal Persistent LOBs

Use Case Model: Internal Persistent LOBs Operations
Creating a Table Containing One or More LOB Columns
SQL: Create a Table Containing One or More LOB Columns
Creating a Table Containing an Object Type with a LOB Attribute
SQL: Creating a Table Containing an Object Type with a LOB Attribute
Creating a Nested Table Containing a LOB
SQL: Creating a Nested Table Containing a LOB
Inserting a LOB Value using EMPTY_CLOB() or EMPTY_BLOB()
SQL: Inserting a Value Using EMPTY_CLOB() / EMPTY_BLOB()
Inserting a Row by Selecting a LOB From Another Table
SQL: Inserting a Row by Selecting a LOB from Another Table
Inserting a Row by Initializing a LOB Locator Bind Variable
PL/SQL (DBMS_LOB Package): Inserting a Row by Initializing a LOB Locator Bind Variable
C (OCI): Inserting a Row by Initializing a LOB Locator Bind Variable
COBOL (Pro*COBOL): Inserting a Row by Initializing a LOB Locator Bind Variable
C/C++ (ProC/C++): Inserting a Row by Initializing a LOB Locator Bind Variable
Visual Basic (OO4O): Inserting a Row by Initializing a LOB Locator Bind Variable
Java (JDBC): Inserting a Row by Initializing a LOB Locator Bind Variable
Loading a LOB with Data From a BFILE
PL/SQL (DBMS_LOB Package): Loading a LOB with Data from a BFILE
C (OCI): Loading a LOB with Data from a BFILE
COBOL (Pro*COBOL): Loading a LOB with Data from a BFILE
Visual Basic (OO4O): Loading a LOB with Data from a BFILE
Java (JDBC): Loading a LOB with Data from a BFILE
Loading an Internal Persistent BLOB with Binary Data from a BFILE
PL/SQL (DBMS_LOB Package): Loading an Internal Persistent BLOB
with BFILE Data
Loading an Internal Persistent CLOB with BFILE Data
PL/SQL (DBMS_LOB Package): Loading an Internal Persistent CLOB with BFILE Data
Open: Checking If a LOB Is Open
PL/SQL (DBMS_LOB Package): Checking if a LOB is Open
C (OCI): Checking if a LOB is Open
COBOL (Pro*COBOL): Checking if a LOB is Open
C/C++ (ProC/C++): Checking if a LOB is Open
Java (JDBC): Checking if a LOB is Open
LONG to LOB Migration Using the LONG-to-LOB API
C (OCI): LONG to LOB Migration
LONG to LOB Copying, Using the TO_LOB Operator
SQL: Copying LONGs to LOBs Using TO_LOB Operator
Checking Out a LOB
PL/SQL (DBMS_LOB Package): Checking Out a LOB
C (OCI): Checking Out a LOB
COBOL (Pro*COBOL): Checking Out a LOB
C/C++ (ProC/C++): Checking Out a LOB
Visual Basic (OO4O): Checking Out a LOB
Java (JDBC): Checking Out a LOB
Checking In a LOB
PL/SQL (DBMS_LOB Package): Checking in a LOB
C (OCI): Checking in a LOB
COBOL (Pro*COBOL): Checking in a LOB
C/C++ (ProC/C++): Checking in a LOB
Visual Basic (OO4O): Checking in a LOB
Java (JDBC): Checking in a LOB
Displaying LOB Data
PL/SQL (DBMS_LOB Package): Displaying LOB Data
C (OCI): Displaying LOB Data
COBOL (Pro*COBOL): Displaying LOB Data
C/C++ (ProC/C++): Displaying LOB Data
Visual Basic (OO4O): Displaying LOB Data
Java (JDBC): Displaying LOB Data
Reading Data from a LOB
PL/SQL (DBMS_LOB Package): Reading Data from a LOB
C (OCI): Reading Data from a LOB
COBOL (Pro*COBOL): Reading Data from a LOB
C/C++ (Pro*C/C++): Reading Data from a LOB
Visual Basic (OO4O): Reading Data from a LOB
Java (JDBC): Reading Data from a LOB
Reading a Portion of the LOB (substr)
PL/SQL (DBMS_LOB Package): Reading a Portion of the LOB (substr)
COBOL (Pro*COBOL): Reading a Portion of the LOB (substr)
C/C++ (Pro*C/C++): Reading a Portion of the LOB (substr)
Visual Basic (OO4O): Reading a Portion of the LOB (substr)
Java (JDBC): Reading a Portion of the LOB (substr)
Comparing All or Part of Two LOBs
PL/SQL (DBMS_LOB Package): Comparing All or Part of Two LOBs
COBOL (Pro*COBOL): Comparing All or Part of Two LOBs
C/C++ (Pro*C/C++): Comparing All or Part of Two LOBs
Visual Basic (OO4O): Comparing All or Part of Two LOBs
Java (JDBC): Comparing All or Part of Two LOBs
Patterns: Checking for Patterns in the LOB (instr)
PL/SQL (DBMS_LOB Package): Checking for Pattern in the LOB (instr)
COBOL (Pro*COBOL): Checking for Patterns in the LOB (instr)
C/C++ (Pro*C/C++): Checking for Patterns in the LOB (instr)
Java (JDBC): Checking for Patterns in the LOB (instr)
Length: Determining the Length of a LOB
PL/SQL (DBMS_LOB Package): Determining the Length of a LOB
C (OCI): Determining the Length of a LOB
COBOL (Pro*COBOL): Determining the Length of a LOB
C/C++ (Pro*C/C++): Determining the Length of a LOB
Visual Basic (OO4O): Determining the Length of a LOB
Java (JDBC): Determining the Length of a LOB
Copying All or Part of One LOB to Another LOB
PL/SQL (DBMS_LOB Package): Copying All or Part of One LOB to Another LOB
C (OCI): Copying All or Part of One LOB to Another LOB
COBOL (Pro*COBOL): Copying All or Part of One LOB to Another LOB
C/C++ (Pro*C/C++): Copy All or Part of a LOB to Another LOB
Visual Basic (OO4O): Copying All or Part of One LOB to Another LOB
Java (JDBC): Copying All or Part of One LOB to Another LOB
Copying a LOB Locator
PL/SQL (DBMS_LOB Package): Copying a LOB Locator
C (OCI): Copying a LOB Locator
COBOL (Pro*COBOL): Copying a LOB Locator
C/C++ (Pro*C/C++): Copying a LOB Locator
Visual Basic (OO4O: Copying a LOB Locator
Java (JDBC): Copying a LOB Locator
Equality: Checking If One LOB Locator Is Equal to Another
C (OCI): Checking If One LOB Locator Is Equal to Another
C/C++ (Pro*C/C++): Checking If One LOB Locator Is Equal to Another
Java (JDBC): Checking If One LOB Locator Is Equal to Another
Initialized Locator: Checking If a LOB Locator Is Initialized
C (OCI): Checking If a LOB Locator Is Initialized
C/C++ (Pro*C/C++): Checking If a LOB Locator Is Initialized
Character Set ID: Determining Character Set ID
C (OCI): Determining Character Set ID
Character Set Form: Determining Character Set Form
C (OCI): Determining Character Set Form
Appending One LOB to Another
PL/SQL (DBMS_LOB Package): Appending One LOB to Another
C (OCI): Appending One LOB to Another
COBOL (Pro*COBOL): Appending One LOB to Another
C/C++ (Pro*C/C++): Appending One LOB to Another
Visual Basic (OO4O): Appending One LOB to Another
Java (JDBC): Appending One LOB to Another
Append-Writing to the End of a LOB
PL/SQL (DBMS_LOB Package): Writing to the End of (Appending to) a LOB
C (OCI): Writing to the End of (Appending to) a LOB
COBOL (Pro*COBOL): Writing to the End of (Appending to) a LOB
C/C++ (Pro*C/C++): Writing to the End of (Appending to) a LOB
Java (JDBC): Writing to the End of (Append-Write to) a LOB
Writing Data to a LOB
PL/SQL (DBMS_LOB Package): Writing Data to a LOB
C (OCI): Writing Data to a LOB
COBOL (Pro*COBOL): Writing Data to a LOB
C/C++ (Pro*C/C++): Writing Data to a LOB
Visual Basic (OO4O):Writing Data to a LOB
Java (JDBC): Writing Data to a LOB
Trimming LOB Data
PL/SQL (DBMS_LOB Package): Trimming LOB Data
C (OCI): Trimming LOB Data
COBOL (Pro*COBOL): Trimming LOB Data
C/C++ (Pro*C/C++): Trimming LOB Data
Visual Basic (OO4O): Trimming LOB Data
Java (JDBC): Trimming LOB Data
Erasing Part of a LOB
PL/SQL (DBMS_LOB Package): Erasing Part of a LOB
C (OCI): Erasing Part of a LOB
COBOL (Pro*COBOL): Erasing Part of a LOB
C/C++ (Pro*C/C++): Erasing Part of a LOB
Visual Basic (OO4O): Erasing Part of a LOB
Java (JDBC): Erasing Part of a LOB
Enabling LOB Buffering
C (OCI): Enabling LOB Buffering
COBOL (Pro*COBOL): Enabling LOB Buffering
C/C++ (Pro*C/C++): Enabling LOB Buffering
Visual Basic (OO4O): Enabling LOB Buffering
Flushing the Buffer
C (OCI): Flushing the Buffer
COBOL (Pro*COBOL): Flushing the Buffer
C/C++ (Pro*C/C++): Flushing the Buffer
Visual Basic (OO4O): Flushing the Buffer
Disabling LOB Buffering
C (OCI): Disabling LOB Buffering
COBOL (Pro*COBOL): Disabling LOB Buffering
C/C++ (Pro*C/C++): Disabling LOB Buffering
Visual Basic (OO4O): Disabling LOB Buffering
Updating a LOB with EMPTY_CLOB() or EMPTY_BLOB()
SQL: UPDATE a LOB with EMPTY_CLOB() or EMPTY_BLOB()
Updating a Row by Selecting a LOB From Another Table
SQL: Update a Row by Selecting a LOB From Another Table
Updating by Initializing a LOB Locator Bind Variable
PL/SQL: Updating by Initializing a LOB Locator Bind Variable
C (OCI): Updating by Initializing a LOB Locator Bind Variable
COBOL (Pro*COBOL): Updating by Initializing a LOB Locator Bind Variable
C/C++ (Pro*C/C++): Updating by Initializing a LOB Locator Bind Variable
Visual Basic (OO4O): Updating by Initializing a LOB Locator Bind Variable
Java (JDBC): Updating by Initializing a LOB Locator Bind Variable
Deleting the Row of a Table Containing a LOB
SQL: Delete a LOB

11 Temporary LOBs

Use Case Model: Internal Temporary LOBs
Programmatic Environments
Locators
Temporary LOB Locators Can be IN Values
Can You Use the Same Functions for Temporary and Internal Persistent LOBs?
DBMS_LOB.createtemporary() Parameter is a Hint
Temporary LOB Data is Stored in Temporary Tablespace
Lifetime and Duration of Temporary LOBs
Memory Handling
Locators and Semantics
Features Specific to Temporary LOBs
Security Issues with Temporary LOBs
NOCOPY Restrictions
Managing Temporary LOBs
Using JDBC and Temporary LOBs
Creating a Temporary LOB
PL/SQL (DBMS_LOB Package): Creating a Temporary LOB
C (OCI): Creating a Temporary LOB
COBOL (Pro*COBOL): Creating a Temporary LOB
C/C++ (Pro*C/C++): Creating a Temporary LOB
Java (JDBC): Creating a Temporary BLOB
Java (JDBC): Creating a Temporary CLOB
Checking If a LOB is Temporary
PL/SQL (DBMS_LOB Package): Checking If a LOB is Temporary
C (OCI): Checking If a LOB is Temporary
COBOL (Pro*COBOL): Checking If a LOB is Temporary
C/C++ (Pro*C/C++): Checking If a LOB is Temporary
Java (JDBC): Checking if a BLOB is Temporary
Java (JDBC): Checking if a CLOB is Temporary
Freeing a Temporary LOB
PL/SQL (DBMS_LOB Package): Freeing a Temporary LOB
C (OCI): Freeing a Temporary LOB
COBOL (Pro*COBOL): Freeing a Temporary LOB
C/C++ (Pro*C/C++): Freeing a Temporary LOB
Java (JDBC): Freeing a Temporary BLOB
Java (JDBC): Freeing a Temporary CLOB
Java (JDBC): Creating and Freeing a Temporary CLOB Using TemporaryClob.java
Loading a Temporary LOB with Data from a BFILE
PL/SQL (DBMS_LOB Package): Loading a Temporary LOB with Data from a BFILE
C (OCI): Loading a Temporary LOB with Data from a BFILE
COBOL (Pro*COBOL): Loading a Temporary LOB with Data from a BFILE
C/C++ (Pro*C/C++): Loading a Temporary LOB with Data from a BFILE
Loading a Temporary BLOB with Binary Data from a BFILE
PL/SQL (DBMS_LOB Package): Loading a Temporary BLOB with BFILE data
Loading a Temporary CLOB/NCLOB with Character Data from a File
PL/SQL (DBMS_LOB Package): Loading a Temporary CLOB/NCLOB with BFILE Data
Determining If a Temporary LOB Is Open
PL/SQL: Determining if a Temporary LOB is Open
C (OCI) Determining if a Temporary LOB is Open
COBOL (Pro*COBOL): Determining if a Temporary LOB is Open
C/C++ (Pro*C/C++): Determining if a Temporary LOB is Open
Displaying Temporary LOB Data
PL/SQL (DBMS_LOB Package): Displaying Temporary LOB Data
C (OCI): Displaying Temporary LOB Data
COBOL (Pro*COBOL): Displaying Temporary LOB Data
C/C++ (Pro*C/C++): Displaying Temporary LOB Data
Reading Data from a Temporary LOB
PL/SQL (DBMS_LOB Package): Reading Data from a Temporary LOB
C (OCI): Reading Data from a Temporary LOB
COBOL (Pro*COBOL): Reading Data from a Temporary LOB
C/C++ (Pro*C/C++): Reading Data from a Temporary LOB
Reading Portion of Temporary LOB (Substr)
PL/SQL (DBMS_LOB Package): Reading a Portion of Temporary LOB (substr)
COBOL (Pro*COBOL): Reading a Portion of Temporary LOB (substr)
C/C++ (Pro*C/C++): Reading a Portion of Temporary LOB (substr)
Comparing All or Part of Two Temporary LOBs
PL/SQL (DBMS_LOB Package): Comparing All or Part of Two Temporary LOBs
COBOL (Pro*COBOL): Comparing All or Part of Two Temporary LOBs
C/C++ (Pro*C/C++): Comparing All or Part of Two Temporary LOBs
Determining If a Pattern Exists in a Temporary LOB (instr)
PL/SQL (DBMS_LOB Package): Determining If a Pattern Exists in a Temporary LOB
COBOL (Pro*COBOL): Determining If a Pattern Exists in a Temporary LOB (instr)
C/C++ (Pro*C/C++): Determining If a Pattern Exists in a Temporary LOB (instr)
Finding the Length of a Temporary LOB
PL/SQL (DBMS_LOB Package): Finding the Length of a Temporary LOB
C (OCI): Finding the Length of a Temporary LOB
COBOL (Pro*COBOL): Finding the Length of a Temporary LOB
C/C++ (Pro*C/C++): Finding the Length of a Temporary LOB
Copying All or Part of One Temporary LOB to Another
PL/SQL (DBMS_LOB Package): Copying All or Part of One Temporary LOB
C (OCI): Copying All or Part of One Temporary LOB to Another
COBOL (Pro*COBOL): Copying All or Part of One Temporary LOB to Another
C/C++ (Pro*C/C++): Copying All or Part of One Temporary LOB to Another
Copying a LOB Locator for a Temporary LOB
PL/SQL (DBMS_LOB Package): Copying a LOB Locator for a Temporary LOB
C (OCI): Copying a LOB Locator for a Temporary LOB
COBOL (Pro*COBOL): Copying a LOB Locator for a Temporary LOB
C/C++ (Pro*C/C++): Copying a LOB Locator for a Temporary LOB
Is One Temporary LOB Locator Equal to Another
C (OCI): Is One LOB Locator for a Temporary LOB Equal to Another
C/C++ (Pro*C/C++): Is One LOB Locator for a Temporary LOB Equal to Another
Determining if a LOB Locator for a Temporary LOB Is Initialized
C (OCI): Determining If a LOB Locator for a Temporary LOB Is Initialized
C/C++ (Pro*C/C++): Determining If a LOB Locator Is Initialized
Finding Character Set ID of a Temporary LOB
C (OCI): Finding Character Set ID of a Temporary LOB
Finding Character Set Form of a Temporary LOB
C (OCI): Finding Character Set Form of a Temporary LOB
Appending One Temporary LOB to Another
PL/SQL (DBMS_LOB Package): Appending One Temporary LOB to Another
C (OCI): Appending One Temporary LOB to Another
COBOL (Pro*COBOL): Appending One Temporary LOB to Another
C/C++ (Pro*C/C++): Appending One Temporary LOB to Another
Write-Appending to a Temporary LOB
PL/SQL (DBMS_LOB Package): Writing-Appending to a Temporary LOB
C (OCI): Writing-Appending to a Temporary LOB
COBOL (Pro*COBOL): Write-Appending to a Temporary LOB
C/C++ (Pro*C/C++): Write-Appending to a Temporary LOB
Writing Data to a Temporary LOB
PL/SQL (DBMS_LOB Package): Writing Data to a Temporary LOB
C (OCI): Writing Data to a Temporary LOB
COBOL (Pro*COBOL): Writing Data to a Temporary LOB
C/C++ (Pro*C/C++): Writing Data to a Temporary LOB
Trimming Temporary LOB Data
PL/SQL (DBMS_LOB Package): Trimming Temporary LOB Data
C (OCI): Trimming Temporary LOB Data
COBOL (Pro*COBOL): Trimming Temporary LOB Data
C/C++ (Pro*C/C++): Trimming Temporary LOB Data
Erasing Part of a Temporary LOB
PL/SQL (DBMS_LOB Package): Erasing Part of a Temporary LOB
(OCI): Erasing Part of a Temporary LOB
COBOL (Pro*COBOL): Erasing Part of a Temporary LOB
C/C++ (Pro*C/C++): Erasing Part of a Temporary LOB
Enabling LOB Buffering for a Temporary LOB
C (OCI): Enabling LOB Buffering for a Temporary LOB
COBOL (Pro*COBOL): Enabling LOB Buffering for a Temporary LOB
C/C++ (Pro*C/C++): Enabling LOB Buffering for a Temporary LOB
Flushing Buffer for a Temporary LOB
C (OCI): Flushing Buffer for a Temporary LOB
COBOL (Pro*COBOL): Flushing Buffer for a Temporary LOB
C/C++ (Pro*C/C++): Flushing Buffer for a Temporary LOB
Disabling LOB Buffering for a Temporary LOB
C (OCI): Disabling LOB Buffering
COBOL (Pro*COBOL): Disabling LOB Buffering for a Temporary LOB
C/C++ (Pro*C/C++): Disabling LOB Buffering for a Temporary LOB

12 External LOBs (BFILEs)

Use Case Model: External LOBs (BFILEs)
Accessing External LOBs (BFILEs)
Directory Object
Initializing a BFILE Locator
How to Associate Operating System Files with Database Records
BFILENAME() and Initialization
DIRECTORY Name Specification
BFILE Security
Ownership and Privileges
Read Permission on Directory Object
SQL DDL for BFILE Security
SQL DML for BFILE Security
Catalog Views on Directories
Guidelines for DIRECTORY Usage
BFILEs in Shared Server (Multi-Threaded Server -- MTS) Mode
External LOB (BFILE) Locators
Creating a Table Containing One or More BFILE Columns
SQL: Creating a Table Containing One or More BFILE Columns
Creating a Table of an Object Type with a BFILE Attribute
SQL: Creating a Table of an Object Type with a BFILE Attribute
Creating a Table with a Nested Table Containing a BFILE
SQL: Creating a Table with a Nested Table Containing a BFILE
INSERT a Row Using BFILENAME()
SQL: Inserting a Row by means of BFILENAME()
C (OCI): Inserting a Row by means of BFILENAME()
COBOL (Pro*COBOL): Inserting a Row by means of BFILENAME()
C/C++ (Pro*C/C++): Inserting a Row by means of BFILENAME()
Visual Basic (OO4O): Inserting a Row by means of BFILENAME()
Java (JDBC): Inserting a Row by means of BFILENAME()
INSERT a BFILE Row by Selecting a BFILE From Another Table
SQL: Inserting a Row Containing a BFILE by Selecting a BFILE From Another Table
Inserting a Row With BFILE by Initializing a BFILE Locator
PL/SQL: Inserting a Row Containing a BFILE by Initializing a BFILE Locator
C (OCI): Inserting a Row Containing a BFILE by Initializing a BFILE Locator
C/C++ (Pro*C/C++): Inserting a Row Containing a BFILE by Initializing a BFILE Locator
Java (JDBC): Inserting a Row Containing a BFILE by Initializing a BFILE Locator
Loading Data Into External LOB (BFILE)
Loading Data Into BFILES: File Name Only is Specified Dynamically
Loading Data into BFILES: File Name and DIRECTORY Object
Dynamically Specified
Loading a LOB with BFILE Data
PL/SQL (DBMS_LOB Package): Loading a LOB with BFILE Data
C (OCI): Loading a LOB with BFILE Data
COBOL (Pro*COBOL): Loading a LOB with BFILE Data
C/C++ (Pro*C/C++): Loading a LOB with BFILE Data
Visual Basic (OO4O): Loading a LOB with BFILE Data
Loading a BLOB with BFILE Data
PL/SQL (DBMS_LOB Package): Loading an Internal Persistent BLOB with BFILE Data
Loading a CLOB with BFILE Data
PL/SQL (DBMS_LOB Package): Loading a CLOB/NCLOB with BFILE Data
Ways to Open a BFILE
Recommendation: Use OPEN to Open BFILE
Specify the Maximum Number of Open BFILEs: SESSION_MAX_OPEN_FILES
Opening a BFILE with FILEOPEN
PL/SQL: Opening a BFILE with FILEOPEN
C (OCI): Opening a BFILE with FILEOPEN
Visual Basic (OO4O): Opening a BFILE with FILEOPEN
Java (JDBC): Opening a BFILE with FILEOPEN
Opening a BFILE with OPEN
PL/SQL: Opening a BFILE with OPEN
C (OCI): Opening a BFILE with OPEN
COBOL (Pro*COBOL): Opening a BFILE with OPEN
C/C++ (Pro*C/C++): Opening a BFILE with OPEN
Visual Basic (OO4O) Opening a BFILE with OPEN
Java (JDBC): Opening a BFILE with OPEN
Ways to See If a BFILE is Open
Recommendation: Use OPEN to Open BFILE
Specify the Maximum Number of Open BFILEs: SESSION_MAX_OPEN_FILES
Checking If the BFILE is Open with FILEISOPEN
PL/SQL (DBMS_LOB Package): Checking If the BFILE is Open with FILEISOPEN
C (OCI): Checking If the BFILE is Open with FILEISOPEN
Visual Basic (OO4O): Checking If the BFILE is Open with FILEISOPEN
Java (JDBC): Checking If the BFILE is Open with FILEISOPEN
Checking If a BFILE is Open Using ISOPEN
PL/SQL (DBMS_LOB Package): Checking If the BFILE is Open with ISOPEN
C (OCI): Checking If the BFILE is Open with ISOPEN
COBOL (Pro*COBOL): Checking If the BFILE is Open with ISOPEN
C/C++ (Pro*C/C++): Checking If the BFILE is Open with ISOPEN
Visual Basic (OO4O): Checking If the BFILE is Open with ISOPEN
Java (JDBC): Checking If the BFILE is Open with ISOPEN
Displaying BFILE Data
PL/SQL: Displaying BFILE Data
C (OCI): Displaying BFILE Data
COBOL (Pro*COBOL): Displaying BFILE Data
C/C++ (Pro*C/C++): Displaying BFILE Data
Visual Basic (OO4O): Displaying BFILE Data
Java (JDBC): Displaying BFILE Data
Reading Data from a BFILE
PL/SQL (DBMS_LOB Package): Reading Data from a BFILE
C (OCI): Reading Data from a BFILE
COBOL (Pro*COBOL): Reading Data from a BFILE
C/C++ (Pro*C/C++): Reading Data from a BFILE
Visual Basic (OO4O): Reading Data from a BFILE
Java (JDBC): Reading Data from a BFILE
Reading a Portion of BFILE Data (substr)
PL/SQL (DBMS_LOB Package): Reading a Portion of BFILE Data (substr)
COBOL (Pro*COBOL): Reading a Portion of BFILE Data (substr)
C/C++ (Pro*C/C++): Reading a Portion of BFILE Data (substr)
Visual Basic (OO4O): Reading a Portion of BFILE Data (substr)
Java (JDBC): Reading a Portion of BFILE Data (substr)
Comparing All or Parts of Two BFILES
PL/SQL (DBMS_LOB Package): Comparing All or Parts of Two BFILES
COBOL (Pro*COBOL): Comparing All or Parts of Two BFILES
C/C++ (Pro*C/C++): Comparing All or Parts of Two BFILES
Visual Basic (OO4O): Comparing All or Parts of Two BFILES
Java (JDBC): Comparing All or Parts of Two BFILES
Checking If a Pattern Exists (instr) in the BFILE
PL/SQL (DBMS_LOB Package): Checking If a Pattern Exists (instr) in the BFILE
COBOL (Pro*COBOL): Checking If a Pattern Exists (instr) in the BFILE
C/C++ (Pro*C/C++): Checking If a Pattern Exists (instr) in the BFILE
Java (JDBC): Checking If a Pattern Exists (instr) in the BFILE
Checking If the BFILE Exists
PL/SQL (DBMS_LOB Package): Checking If the BFILE Exists
C (OCI): Checking If the BFILE Exists
COBOL (Pro*COBOL): Checking If the BFILE Exists
C/C++ (Pro*C/C++): Checking If the BFILE Exists
Visual Basic (OO4O): Checking If the BFILE Exists
Java (JDBC): Checking If the BFILE Exists
Getting the Length of a BFILE
PL/SQL (DBMS_LOB Package): Getting the Length of a BFILE
C (OCI): Getting the Length of a BFILE
COBOL (Pro*COBOL): Getting the Length of a BFILE
C/C++ (Pro*C/C++): Getting the Length of a BFILE
Visual Basic (OO4O): Getting the Length of a BFILE
Java (JDBC): Getting the Length of a BFILE
Copying a LOB Locator for a BFILE
PL/SQL: Copying a LOB Locator for a BFILE
C (OCI): Copying a LOB Locator for a BFILE
COBOL (Pro*COBOL): Copying a LOB Locator for a BFILE
C/C++ (Pro*C/C++): Copying a LOB Locator for a BFILE
Java (JDBC): Copying a LOB Locator for a BFILE
Determining If a LOB Locator for a BFILE Is Initialized
C (OCI): Determining If a LOB Locator for a BFILE Is Initialized
C/C++ (Pro*C/C++): Determining If a LOB Locator for a BFILE Is Initialized
Determining If One LOB Locator for a BFILE Is Equal to Another
C (OCI): Determining If One LOB Locator for a BFILE Is Equal to Another
C/C++ (Pro*C/C++): Determining If One BFILE LOB Locator Is Equal to Another
Java (JDBC): Determining If One LOB Locator for a BFILE Is Equal to Another
Getting DIRECTORY Alias and Filename
PL/SQL (DBMS_LOB Package): Getting Directory Alias and Filename
C (OCI): Getting Directory Alias and Filename
COBOL (Pro*COBOL): Getting Directory Alias and Filename
C/C++ (Pro*C/C++): Getting Directory Alias and Filename
Visual Basic (OO4O): Getting Directory Alias and Filename
Java (JDBC): Getting Directory Alias and Filename
Updating a BFILE Using BFILENAME()
SQL: Updating a BFILE by means of BFILENAME()
Updating a BFILE by Selecting a BFILE From Another Table
SQL: Updating a BFILE by Selecting a BFILE From Another Table
Updating a BFILE by Initializing a BFILE Locator
PL/SQL: Updating a BFILE by Initializing a BFILE Locator
C (OCI): Updating a BFILE by Initializing a BFILE Locator
COBOL (Pro*COBOL): Updating a BFILE by Initializing a BFILE Locator
C/C++ (Pro*C/C++): Updating a BFILE by Initializing a BFILE Locator
Visual Basic (OO4O): Updating a BFILE by Initializing a BFILE Locator
Java (JDBC): Updating a BFILE by Initializing a BFILE Locator
Closing a BFILE with FILECLOSE
PL/SQL (DBMS_LOB Package): Closing a BFile with FILECLOSE
C (OCI): Closing a BFile with FILECLOSE
Visual Basic (OO4O): Closing a BFile with FILECLOSE
Java (JDBC): Closing a BFile with FILECLOSE
Closing a BFILE with CLOSE
PL/SQL (DBMS_LOB Package): Closing a BFile with CLOSE
C (OCI): Closing a BFile with CLOSE
COBOL (Pro*COBOL): Closing a BFILE with CLOSE
C/C++ (Pro*C/C++): Closing a BFile with CLOSE
Visual Basic (OO4O): Closing a BFile with CLOSE
Java (JDBC): Closing a BFile with CLOSE
Closing All Open BFILEs with FILECLOSEALL
PL/SQL (DBMS_LOB Package): Closing All Open BFiles
C (OCI): Closing All Open BFiles
COBOL (Pro*COBOL): Closing All Open BFiles
C/C++ (Pro*C/C++): Closing All Open BFiles
Visual Basic (OO4O): Closing All Open BFiles
Java (JDBC): Closing All Open BFiles with FILECLOSEALL
Deleting the Row of a Table Containing a BFILE
SQL: Deleting a Row from a Table

13 Using OraOLEDB to Manipulate LOBs

Introducing OLE DB
OraOLEDB: OLE DB and Oracle Large Object (LOB) Support
Rowset Object
Manipulating LOBs Using ADO Recordsets and OLE DB Rowsets
ADO Recordsets and LOBs
OLE DB Rowsets and LOBs
Manipulating LOBs Using OraOLEDB Commands
ADO and LOBs Example 1: Inserting LOB Data From a File

14 LOBs Case Studies

Building a Multimedia Repository
How this Application Uses LOBs
Populating the Repository
Example 1: Inserting a Word document into a BLOB Column using PL/SQL
Searching the Repository
How the Index Was Built on Table sam_emp, resume Column
MyServletCtx Servlet
Retrieving Data from the Repository
Summary
Building a LOB-Based Web Site: First Steps

A Unified Modeling Language Diagrams

Use Case Diagrams
State Diagrams

B The Multimedia Schema

A Typical Multimedia Application
The Multimedia Schema
Table Multimedia_Tab
Script for Creating the Multimedia Schema

Index


Go to next page
Oracle
Copyright © 1996, 2002 Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Book List
Go To Index
Index

Master Index

Feedback