Oracle9i Application Developer’s Guide – Large Objects (LOBs) using PL/SQL

Free Download

Authors:

Edition: release 1 (9.0.1)

Size: 4 MB (3771981 bytes)

Pages: 606/606

File format:

Language:

Publishing Year:

Category:

Higgins S., Kotsovolos S., Raphaely D.

Oraclc9i Application Developer’s Guide-Large Objects (LOBs) contains information that describes the features and fimctionality of Oracle9i and Oracle9i Enterprise Edition products. Oracle9i and Oracle9i Enterprise Edition have the same basic features. However, several advanced features are available only with the Enterprise Edition, and some of these are optional. To use the Partitioning fimctionality, select the Partitioning option.

Table of contents :
Send Us Your Comments……Page 21
Preface……Page 23
Structure……Page 24
Related Documents……Page 27
Conventions……Page 29
Documentation Accessibility……Page 32
LOB Features Introduced with Oracle9i, Release 1 (9.0.1)……Page 33
LOB Features Introduced with Oracle8i, Release 8.1.5……Page 36
1 Introduction to LOBs……Page 37
Unstructured Data in System Files Need Accessing from the Database……Page 38
Oracle Text (interMedia Text) Indexing Supports Searching Content in XML Elements……Page 39
Why Not Use LONGs?……Page 40
SQL Semantics Support for LOBs……Page 41
Extensible Indexing on LOBs……Page 42
Extensible Optimizer……Page 43
LOB “Demo” Directory……Page 44
Compatibility and Migration Issues……Page 45
Examples in This Manual Use the Multimedia Schema……Page 46
2 Basic LOB Components……Page 47
External LOBs (BFILEs)……Page 48
Reference Semantics……Page 49
CLOB, NCLOB Values are Stored Using 2 Byte Unicode for Varying-Width Character Sets……Page 50
Converting Between Client Character Set and UCS-2……Page 51
Internal LOBs……Page 52
External LOBs……Page 53
SELECTing a LOB……Page 54
Setting an Internal LOB to NULL……Page 55
Initializing LOBs Example Using Table Multimedia_tab……Page 56
Initializing External LOBs to NULL or a File Name……Page 57
3 LOB Support in Different Programmatic Environments……Page 59
Eight Programmatic Environments Operate on LOBs……Page 60
Comparing the LOB Interfaces……Page 61
Provide a LOB Locator Before Invoking the DBMS_LOB Routine……Page 64
PL/SQL Functions and Procedures that Operate on BLOBs, CLOBs, NCLOBs, and BFILEs……Page 65
PL/SQL Functions/Procedures To Read or Examine Internal and External LOB Values……Page 66
PL/SQL Functions/Procedures To Open and Close Internal and External LOBs……Page 67
OLEDB (Oracle Provider for OLEDB — OraOLEDB)……Page 69
4 Managing LOBs……Page 71
Using SQL DML for Basic Operations on LOBs……Page 72
Oracle8 Release 8.0.4.3……Page 73
Managing Temporary LOBs……Page 74
Inline versus Out-of-Line LOBs……Page 75
SQL Loader Performance: Loading Into Internal LOBs……Page 76
Data File (sample.dat)……Page 77
Control File……Page 78
Loading Out-Of-Line LOB Data……Page 79
Secondary Data File (SecondStory.txt)……Page 80
Loading Out-of-Line LOB Data in Delimited Fields……Page 81
Control File……Page 82
SQL Loader LOB Loading Tips……Page 83
LOB Restrictions……Page 84
Removed Restrictions……Page 87
5 Large Objects: Advanced Topics……Page 89
A Selected Locator Becomes a Read Consistent Locator……Page 90
Read Consistent Locators Provide Same LOB Value Regardless of When the SELECT Occurs……Page 91
Example……Page 92
Example of Updating a LOB Using SQL DML and DBMS_LOB……Page 94
Example……Page 95
Example of Using One Locator to Update the Same LOB Value……Page 96
Example……Page 97
Example of Updating a LOB with a PL/SQL (DBMS_LOB) Bind Variable……Page 98
Example……Page 99
LOB Locators Cannot Span Transactions……Page 101
Example of Locator Not Spanning a Transaction……Page 102
Transaction IDs: Reading and Writing to a LOB Using Locators……Page 103
Case 2:……Page 104
Case 4:……Page 105
LOBs in the Object Cache……Page 106
Guidelines for Using LOB Buffering……Page 107
LOB Buffer Physical Structure……Page 109
Example of Using the LOB Buffering System (LBS)……Page 110
Flushing the LOB Buffer……Page 111
Flushing the Updated LOB……Page 112
Saving Locator State to Avoid a Reselect……Page 113
OCI Example of LOB Buffering……Page 114
Creating a Varray Containing LOB References: Example……Page 117
Example of LOB Columns in Partitioned Index-Organized Tables……Page 118
Non-Supported Column Types……Page 119
Hash Partitioned Index-Organized Table LOB Restrictions……Page 120
6 Frequently Asked Questions about LOBs……Page 121
Answer……Page 124
Question……Page 125
Answer……Page 126
Answer……Page 127
Answer……Page 128
Answer……Page 129
Answer……Page 130
Answer……Page 131
Question……Page 132
Answer……Page 133
Answer……Page 134
Answer……Page 135
Answer……Page 138
Question……Page 139
Answer……Page 140
Question……Page 141
Answer……Page 142
Question……Page 143
Answer……Page 144
Answer……Page 145
Question 1……Page 146
Answer 2……Page 147
Answer……Page 148
Answer……Page 149
Question……Page 150
Answer……Page 151
Answer……Page 152
7 Modeling and Design……Page 153
LOBs Compared to LONG and LONG RAW Types……Page 154
Selecting a Table Architecture……Page 155
EMPTY_CLOB() or EMPTY_BLOB() Column Storage: LOB Locator is Stored……Page 156
Defining Tablespace and Storage Example1……Page 157
TABLESPACE and LOB Index……Page 158
PCTVERSION……Page 159
CACHE / NOCACHE / CACHE READS……Page 160
LOBs Will Always Generate Undo for LOB Index Pages……Page 161
Set INITIAL and NEXT to Larger than CHUNK……Page 162
Guidelines for ENABLE or DISABLE STORAGE IN ROW……Page 163
Example 1: Creating a Tablespace and Table to Store Gigabyte LOBs……Page 164
How this Affects the Temporary LOB COPY or APPEND?……Page 165
Binds Greater than 4,000 Bytes are Now Allowed For LOB INSERTs and UPDATEs……Page 166
Binds of More Than 4,000 Bytes … No HEX to RAW or RAW to HEX Conversion……Page 167
Example: PL/SQL – Using Binds of More Than 4,000 Bytes in INSERT and UPDATE……Page 168
Example: PL/SQL – 4,000 Byte Result Limit in Binds of More than 4,000 Bytes When Data Includes SQ………Page 170
Example: C (OCI) – Binds of More than 4,000 Bytes For INSERT and UPDATE……Page 171
Close All Opened LOBs Before Committing the Transaction……Page 174
Example 1: Correct Use of OPEN/CLOSE Calls to LOBs in a Transaction……Page 175
LOBs in Index Organized Tables (IOT)……Page 176
Example of Index Organized Table (IOT) with LOB Columns……Page 177
Manipulating LOBs in Partitioned Tables……Page 178
Creating and Partitioning a Table Containing LOB Data……Page 180
Creating an Index on a Table Containing LOB Columns……Page 182
Splitting Partitions Containing LOBs……Page 183
Functional Indexes on LOB Columns……Page 184
Improved LOB Usability: You can Now Access LOBs Using SQL “Character” Functions……Page 185
PL/SQL Relational Operators Now Allowed for LOBs……Page 186
Using SQL Functions and Operators for VARCHAR2s on CLOBs……Page 187
UNICODE Support for VARCHAR2 and CLOB……Page 191
Defining CHAR Buffer on CLOB……Page 192
Returning VARCHAR2s……Page 193
Returned LOB is a Temporary LOB Locator……Page 194
IS [NOT] NULL in VARCHAR2s and CLOBs……Page 195
SQL DML Changes For LOBs……Page 196
PL/SQL Statements and Variables: New Semantics Changes……Page 197
PL/SQL Example 1: Prior Release SQL Interface for a CLOB/VARCHAR2 Application……Page 198
PL/SQL Example 3: Defining a CLOB Variable on a VARCHAR2……Page 199
VARCHAR2 and CLOB in PL/SQL Built-in Functions……Page 200
PL/SQL Example 5: Change in Locator-Data Linkage……Page 201
PL/SQL Example 6: Freeing Temporary LOBs Automatically and Manually……Page 202
Varying-Width Character Sets: VARCHAR2s and CLOBs……Page 203
Inserting More than 4K Bytes Data Into LOB Columns……Page 204
Performance Measurement……Page 205
User-Defined Aggregates and LOBs……Page 206
UDAGs: DML and Query Support……Page 207
8 Migrating From LONGs to LOBs……Page 209
Using the LONG-to-LOB API Results in an Easy Migration……Page 210
Binds in OCI……Page 211
OCI Functions Allow Piecewise and Array INSERT, UPDATE, or Fetch on LOBs……Page 212
Assignment and Parameters Passing (PL/SQL)……Page 213
Migrating LONGs to LOBs: Using ALTER TABLE to Change LONG Column to LOB Types……Page 214
All Constraints of LONG Column are Maintained……Page 216
Rebuilding Indexes After a LONG to LOB Migration……Page 217
Replication……Page 218
Triggers……Page 219
NULL LOBs Versus Zero Length LOBs……Page 220
Guidelines for Using LONG-to-LOB API for LOBs with OCI……Page 221
Using Piecewise INSERTs and UPDATEs with Polling……Page 222
Simple Fetch in One Piece……Page 223
Piecewise with Callback……Page 224
UPDATEs……Page 225
Variable Assignment Between CLOB/CHAR and BLOB/RAW……Page 226
VARCHAR2 and CLOB in PL/SQL Built-In Functions……Page 227
PL/SQL and C Binds from OCI……Page 228
From SQL……Page 229
From PL/SQL……Page 230
Overloading with Anchored Types……Page 231
Using utldtree.sql to Determine Where Your Application Needs Change……Page 232
To Convert LONG to CLOB, Use ALTER TABLE……Page 233
Converting LONG to LOB Example 1: More than 4K Binds and Simple INSERTs……Page 234
Converting LONG to LOB Example 2: Piecewise INSERT with Polling……Page 235
Converting LONG to LOB Example 3: Piecewise INSERT with Callback……Page 236
Converting LONG to LOB Example 4: Array insert……Page 238
Converting LONG to LOB Example 6: Piecewise Fetch with Polling……Page 240
Converting LONG to LOB Example 7: Piecewise Fetch with Callback……Page 241
Converting LONG to LOB Example 8: Array Fetch……Page 243
Converting LONG to LOB Example 9: Using PL/SQL in INSERT, UPDATE and SELECT……Page 244
Converting LONG to LOB Example 10: Assignments and Parameter Passing in PL/SQL……Page 245
Converting LONG to LOB Example 12: Using PL/SQL Binds from OCI on LOBs……Page 246
Calling PL/SQL Outbinds in the “call foo(:1);” Manner……Page 247
Converting LONG to LOB Example 13: Calling PL/SQL and C Procedures from PL/SQL……Page 248
PL/SQL Interface……Page 249
Compatibility and Migration……Page 250
Answer……Page 251
Answer……Page 252
Answer……Page 253
9 LOBS: Best Practices……Page 255
Loading XML Documents Into LOBs With SQL*Loader……Page 256
LOB Performance Guidelines……Page 259
Temporary LOB Performance Guidelines……Page 260
The Correct Procedure……Page 263
Preventing Generation of Redo Space During Migration……Page 264
10 Internal Persistent LOBs……Page 265
Use Case Model: Internal Persistent LOBs Operations……Page 266
Creating Tables Containing LOBs……Page 271
Creating a Table Containing One or More LOB Columns……Page 273
SQL: Create a Table Containing One or More LOB Columns……Page 275
Creating a Table Containing an Object Type with a LOB Attribute……Page 278
SQL: Creating a Table Containing an Object Type with a LOB Attribute……Page 280
Creating a Nested Table Containing a LOB……Page 283
SQL: Creating a Nested Table Containing a LOB……Page 285
Inserting One or More LOB Values into a Row……Page 286
Inserting a LOB Value using EMPTY_CLOB() or EMPTY_BLOB()……Page 288
SQL: Inserting a Value Using EMPTY_CLOB() / EMPTY_BLOB()……Page 290
Inserting a Row by Selecting a LOB From Another Table……Page 291
SQL: Inserting a Row by Selecting a LOB from Another Table……Page 292
Inserting a Row by Initializing a LOB Locator Bind Variable……Page 293
PL/SQL (DBMS_LOB Package): Inserting a Row by Initializing a LOB Locator Bind Variable……Page 294
Loading Initial Data into a BLOB, CLOB, or NCLOB……Page 295
Loading a LOB with BFILE Data……Page 297
PL/SQL (DBMS_LOB Package): Loading a LOB with Data from a BFILE……Page 299
Open: Checking If a LOB Is Open……Page 300
PL/SQL (DBMS_LOB Package): Checking if a LOB is Open……Page 301
LONGs to LOBs……Page 302
LONG to LOB Migration Using the LONG-to-LOB API……Page 303
To Convert LONG to CLOB, Use ALTER TABLE……Page 304
LONG to LOB Copying, Using the TO_LOB Operator……Page 305
SQL: Copying LONGs to LOBs Using TO_LOB Operator……Page 306
Checking Out a LOB……Page 309
PL/SQL (DBMS_LOB Package): Checking Out a LOB……Page 310
Checking In a LOB……Page 312
PL/SQL (DBMS_LOB Package): Checking in a LOB……Page 313
Displaying LOB Data……Page 315
PL/SQL (DBMS_LOB Package): Displaying LOB Data……Page 316
Reading Data from a LOB……Page 318
PL/SQL (DBMS_LOB Package): Reading Data from a LOB……Page 320
Reading a Portion of the LOB (substr)……Page 322
PL/SQL (DBMS_LOB Package): Reading a Portion of the LOB (substr)……Page 323
Comparing All or Part of Two LOBs……Page 325
PL/SQL (DBMS_LOB Package): Comparing All or Part of Two LOBs……Page 326
Patterns: Checking for Patterns in the LOB (instr)……Page 328
PL/SQL (DBMS_LOB Package): Checking for Pattern in the LOB (instr)……Page 329
Length: Determining the Length of a LOB……Page 331
PL/SQL (DBMS_LOB Package): Determining the Length of a LOB……Page 332
Copying All or Part of One LOB to Another LOB……Page 334
PL/SQL (DBMS_LOB Package): Copying All or Part of One LOB to Another LOB……Page 335
Copying a LOB Locator……Page 339
PL/SQL (DBMS_LOB Package): Copying a LOB Locator……Page 340
Equality: Checking If One LOB Locator Is Equal to Another……Page 341
Initialized Locator: Checking If a LOB Locator Is Initialized……Page 343
Character Set ID: Determining Character Set ID……Page 345
Character Set Form: Determining Character Set Form……Page 347
Appending One LOB to Another……Page 349
PL/SQL (DBMS_LOB Package): Appending One LOB to Another……Page 350
Append-Writing to the End of a LOB……Page 352
PL/SQL (DBMS_LOB Package): Writing to the End of (Appending to) a LOB……Page 354
Writing Data to a LOB……Page 355
PL/SQL (DBMS_LOB Package): Writing Data to a LOB……Page 358
Trimming LOB Data……Page 360
PL/SQL (DBMS_LOB Package): Trimming LOB Data……Page 361
Erasing Part of a LOB……Page 363
PL/SQL (DBMS_LOB Package): Erasing Part of a LOB……Page 364
Enabling LOB Buffering……Page 366
Flushing the Buffer……Page 368
Disabling LOB Buffering……Page 370
Three Ways to Update a LOB or Entire LOB Data……Page 373
Updating a LOB with EMPTY_CLOB() or EMPTY_BLOB()……Page 374
For Binds of More Than 4,000 Bytes……Page 375
SQL: UPDATE a LOB with EMPTY_CLOB() or EMPTY_BLOB()……Page 376
Updating a Row by Selecting a LOB From Another Table……Page 377
SQL: Update a Row by Selecting a LOB From Another Table……Page 378
Updating by Initializing a LOB Locator Bind Variable……Page 379
SQL: Updating by Initializing a LOB Locator Bind Variable……Page 380
Deleting the Row of a Table Containing a LOB……Page 381
SQL: Delete a LOB……Page 382
11 Temporary LOBs……Page 383
Use Case Model: Internal Temporary LOBs……Page 384
Temporary LOB Locators Can be IN Values……Page 388
Temporary LOB Data is Stored in Temporary Tablespace……Page 389
Temporary Tablespace……Page 390
Locators and Semantics……Page 391
Features Specific to Temporary LOBs……Page 392
Managing Temporary LOBs……Page 394
Creating a Temporary LOB……Page 395
PL/SQL (DBMS_LOB Package): Creating a Temporary LOB……Page 396
Checking If a LOB is Temporary……Page 398
PL/SQL (DBMS_LOB Package): Checking If a LOB is Temporary……Page 399
Freeing a Temporary LOB……Page 400
PL/SQL (DBMS_LOB Package): Freeing a Temporary LOB……Page 401
Loading a Temporary LOB with Data from a BFILE……Page 402
PL/SQL (DBMS_LOB Package): Loading a Temporary LOB with Data from a BFILE……Page 403
Determining If a Temporary LOB Is Open……Page 404
PL/SQL: Determining if a Temporary LOB is Open……Page 405
Displaying Temporary LOB Data……Page 406
PL/SQL (DBMS_LOB Package): Displaying Temporary LOB Data……Page 407
Reading Data from a Temporary LOB……Page 409
PL/SQL (DBMS_LOB Package): Reading Data from a Temporary LOB……Page 411
Reading Portion of Temporary LOB (Substr)……Page 412
PL/SQL (DBMS_LOB Package): Reading a Portion of Temporary LOB (substr)……Page 413
Comparing All or Part of Two (Temporary) LOBs……Page 414
PL/SQL (DBMS_LOB Package): Comparing All or Part of Two (Temporary) LOBs……Page 415
Determining If a Pattern Exists in a Temporary LOB (instr)……Page 417
PL/SQL (DBMS_LOB Package): Determining If a Pattern Exists in a Temporary LOB (instr)……Page 418
Finding the Length of a Temporary LOB……Page 420
PL/SQL (DBMS_LOB Package): Finding the Length of a Temporary LOB……Page 421
Copying All or Part of One (Temporary) LOB to Another……Page 423
PL/SQL (DBMS_LOB Package): Copying All or Part of One (Temporary) LOB to Another……Page 424
Copying a LOB Locator for a Temporary LOB……Page 426
PL/SQL (DBMS_LOB Package): Copying a LOB Locator for a Temporary LOB……Page 427
Is One Temporary LOB Locator Equal to Another……Page 429
Determining if a LOB Locator for a Temporary LOB Is Initialized……Page 431
Finding Character Set ID of a Temporary LOB……Page 433
Finding Character Set Form of a Temporary LOB……Page 435
Appending One (Temporary) LOB to Another……Page 437
PL/SQL (DBMS_LOB Package): Appending One (Temporary) LOB to Another……Page 438
Write-Appending to a Temporary LOB……Page 440
PL/SQL (DBMS_LOB Package): Writing-Appending to a Temporary LOB……Page 441
Writing Data to a Temporary LOB……Page 443
PL/SQL (DBMS_LOB Package): Writing Data to a Temporary LOB……Page 445
Trimming Temporary LOB Data……Page 447
PL/SQL (DBMS_LOB Package): Trimming Temporary LOB Data……Page 448
Erasing Part of a Temporary LOB……Page 450
PL/SQL (DBMS_LOB Package): Erasing Part of a Temporary LOB……Page 451
Enabling LOB Buffering for a Temporary LOB……Page 453
Flushing Buffer for a Temporary LOB……Page 455
Disabling LOB Buffering for a Temporary LOB……Page 457
12 External LOBs (BFILEs)……Page 459
Use Case Model: External LOBs (BFILEs)……Page 460
Initializing a BFILE Locator……Page 463
Examples……Page 464
BFILENAME() and Initialization……Page 465
Ownership and Privileges……Page 466
SQL DDL for BFILE Security……Page 467
Guidelines for DIRECTORY Usage……Page 468
BFILEs in Shared Server (Multi-Threaded Server — MTS) Mode……Page 469
Guidelines……Page 470
General Rule……Page 471
Three Ways to Create a Table Containing a BFILE……Page 472
Creating a Table Containing One or More BFILE Columns……Page 473
SQL: Creating a Table Containing One or More BFILE Columns……Page 474
Creating a Table of an Object Type with a BFILE Attribute……Page 476
SQL: Creating a Table of an Object Type with a BFILE Attribute……Page 477
Creating a Table with a Nested Table Containing a BFILE……Page 479
SQL: Creating a Table with a Nested Table Containing a BFILE……Page 480
Three Ways to Insert a Row Containing a BFILE……Page 481
INSERT a Row Using BFILENAME()……Page 482
Ways BFILENAME() is Used to Initialize BFILE Column or Locator Variable……Page 483
SQL: Inserting a Row by means of BFILENAME()……Page 484
INSERT a BFILE Row by Selecting a BFILE From Another Table……Page 485
SQL: Inserting a Row Containing a BFILE by Selecting a BFILE From Another Table……Page 486
Inserting a Row With BFILE by Initializing a BFILE Locator……Page 487
PL/SQL: Inserting a Row Containing a BFILE by Initializing a BFILE Locator……Page 488
Loading Data Into External LOB (BFILE)……Page 490
Data file (sample9.dat)……Page 492
Data file (sample10.dat)……Page 493
Loading a LOB with BFILE Data……Page 494
Specify Amount Parameter to be Less than the Size of the BFILE!……Page 495
PL/SQL (DBMS_LOB Package): Loading a LOB with BFILE Data……Page 496
Two Ways to Open a BFILE……Page 497
Close Files After Use!……Page 498
Opening a BFILE with FILEOPEN……Page 499
PL/SQL: Opening a BFILE with FILEOPEN……Page 500
Opening a BFILE with OPEN……Page 501
PL/SQL: Opening a BFILE with OPEN……Page 502
Specify the Maximum Number of Open BFILEs: SESSION_MAX_OPEN_FILES……Page 503
Checking If the BFILE is Open with FILEISOPEN……Page 505
PL/SQL (DBMS_LOB Package): Checking If the BFILE is Open with FILEISOPEN……Page 506
Checking If a BFILE is Open Using ISOPEN……Page 507
PL/SQL (DBMS_LOB Package): Checking If the BFILE is Open with ISOPEN……Page 508
Displaying BFILE Data……Page 509
PL/SQL: Displaying BFILE Data……Page 510
Reading Data from a BFILE……Page 512
The Amount Parameter……Page 513
PL/SQL (DBMS_LOB Package): Reading Data from a BFILE……Page 514
Reading a Portion of BFILE Data (substr)……Page 515
PL/SQL (DBMS_LOB Package): Reading a Portion of BFILE Data (substr)……Page 516
Comparing All or Parts of Two BFILES……Page 518
PL/SQL (DBMS_LOB Package): Comparing All or Parts of Two BFILES……Page 519
Checking If a Pattern Exists (instr) in the BFILE……Page 521
PL/SQL (DBMS_LOB Package): Checking If a Pattern Exists (instr) in the BFILE……Page 522
Checking If the BFILE Exists……Page 524
PL/SQL (DBMS_LOB Package): Checking If the BFILE Exists……Page 525
Getting the Length of a BFILE……Page 526
PL/SQL (DBMS_LOB Package): Getting the Length of a BFILE……Page 527
Copying a LOB Locator for a BFILE……Page 528
PL/SQL: Copying a LOB Locator for a BFILE……Page 529
Determining If a LOB Locator for a BFILE Is Initialized……Page 531
Determining If One LOB Locator for a BFILE Is Equal to Another……Page 533
Getting DIRECTORY Alias and Filename……Page 535
PL/SQL (DBMS_LOB Package): Getting Directory Alias and Filename……Page 536
Three Ways to Update a Row Containing a BFILE……Page 537
Updating a BFILE Using BFILENAME()……Page 538
SQL: Updating a BFILE by means of BFILENAME()……Page 540
Updating a BFILE by Selecting a BFILE From Another Table……Page 541
SQL: Updating a BFILE by Selecting a BFILE From Another Table……Page 542
Updating a BFILE by Initializing a BFILE Locator……Page 543
PL/SQL: Updating a BFILE by Initializing a BFILE Locator……Page 544
Two Ways to Close a BFILE……Page 546
Closing a BFILE with FILECLOSE……Page 548
PL/SQL (DBMS_LOB Package): Closing a BFile with FILECLOSE……Page 549
Closing a BFILE with CLOSE……Page 550
PL/SQL (DBMS_LOB Package): Closing a BFile with CLOSE……Page 551
Closing All Open BFILEs with FILECLOSEALL……Page 552
PL/SQL (DBMS_LOB Package): Closing All Open BFiles……Page 553
Deleting the Row of a Table Containing a BFILE……Page 554
TRUNCATE……Page 555
13 Using OraOLEDB to Manipulate LOBs……Page 557
Rowset Object……Page 558
Writing Data to a LOB Column With AppendChunk()……Page 559
ADO and LOBs Example 1: Inserting LOB Data From a File……Page 560
14 LOBs Case Studies……Page 563
Building a Multimedia Repository……Page 564
How this Application Uses LOBs……Page 565
Populating the Repository……Page 566
Example 1: Inserting a Word document into a BLOB Column using PL/SQL……Page 567
How the Index Was Built on Table sam_emp, resume Column……Page 568
MyServletCtx.java……Page 569
Retrieving Data from the Repository……Page 571
MyServlet.java……Page 572
First Steps Solution……Page 574
Use Case Diagrams……Page 577
Hot Links in the Online Versions of this Document……Page 583
B The Multimedia Schema Used for Examples in This Manual……Page 585
A Typical Multimedia Application……Page 586
The Multimedia Schema……Page 587
Table Multimedia_Tab……Page 588
Script for Creating the Multimedia Schema……Page 590
Index……Page 595

Reviews

There are no reviews yet.

Be the first to review “Oracle9i Application Developer’s Guide – Large Objects (LOBs) using PL/SQL”
Shopping Cart
Scroll to Top