DBMS_LOB パッケージは、ラージオブジェクトに対して操作を実行するために使用されます。
| 関数またはストアドプロシージャ | データ型 | 戻り値の型 | 説明 |
| APPEND(dest_lob IN OUT,src_lob) | ストアドプロシージャ | N/A | ラージオブジェクトを別のオブジェクトに追加します。 |
| COMPARE(lob_1, lob_2 [, amount[, offset_1 [, offset_2 ]]]) | 機能 | INTEGER | 指定された長さに対して、指定されたオフセットで2つの大きなオブジェクトを比較します。 |
| CONVERTOBLOB(dest_lob IN OUT、src_clob、amount、dest_offset IN OUT、src_offset IN OUT、blob_csid、lang_context IN OUT、warning OUT) | ストアドプロシージャ | N/A | CLOBデータ型のラージオブジェクトをBLOBデータ型のラージオブジェクトに変換します。 |
| CONVERTTOCLOB(dest_lob IN OUT、src_blob、amount、dest_offset IN OUT、src_offset IN OUT、blob_csid、lang_context IN OUT、warning OUT) | ストアドプロシージャ | N/A | BLOBデータ型のラージオブジェクトをCLOBデータ型のラージオブジェクトに変換します。 |
| COPY(dest_lob IN OUT, src_lob,amount [, dest_offset [,src_offset ]]) | ストアドプロシージャ | N/A | 大きなオブジェクトを別のオブジェクトにコピーします。 |
| ERASE(lob_loc IN OUT, amount IN OUT [, offset ]) | ストアドプロシージャ | N/A | ラージオブジェクトのデータの一部を消去します。 |
| GET_STORAGE_LIMIT(lob_loc) | 機能 | INTEGER | データベースのラージオブジェクトが使用できる最大ストレージ領域を指定します。 |
| GETLENGTH(lob_loc) | 機能 | INTEGER | ラージオブジェクトの長さを照会します。 |
| INSTR(lob_loc, pattern [,offset [, nth ]]) | 機能 | INTEGER | 指定されたパターンがラージオブジェクトで指定されたn回目に表示される位置を取得します。 |
| READ(lob_loc, amount IN OUT,offset, buffer OUT) | ストアドプロシージャ | N/A | ラージオブジェクトからデータの一部を読み取ります。 |
| SUBSTR(lob_loc [, amount [,offset ]]) | 機能 | RAW または VARCHAR2 | ラージオブジェクトの一部を取得します。 |
| TRIM(lob_loc IN OUT, newlen) | ストアドプロシージャ | N/A | ラージオブジェクトを指定した長さにトリミングします。 |
| WRITE(lob_loc IN OUT, amount,offset, buffer) | ストアドプロシージャ | N/A | ラージオブジェクトにデータを書き込みます。 |
| WRITEAPPEND(lob_loc IN OUT,amount, buffer) | ストアドプロシージャ | N/A | バッファからラージオブジェクトの最後にデータを書き込みます。 |
次の表に、DBMS_LOBパッケージで使用できるパブリック変数を示します。
| パブリック変数 | データ型 | 変数値 |
| compress off | INTEGER | 0 |
| compress_on | INTEGER | 1 |
| deduplicate_off | INTEGER | 0 |
| deduplicate_on | INTEGER | 4 |
| default_csid | INTEGER | 0 |
| default_lang_ctx | INTEGER | 0 |
| encrypt_off | INTEGER | 0 |
| encrypt_on | INTEGER | 1 |
| file_readonly | INTEGER | 0 |
| lobmaxsize | INTEGER | 1073741823 |
| lob_readonly | INTEGER | 0 |
| lob_readwrite | INTEGER | 1 |
| no_warning | INTEGER | 0 |
| opt_compress | INTEGER | 1 |
| opt_deduplicate | INTEGER | 4 |
| opt_encrypt | INTEGER | 2 |
| warn_inconvertible_char | INTEGER | 1 |
説明 以下のセクションでは、ラージオブジェクトのデータ型が BLOB の場合、オブジェクトの長さとオフセットはバイト単位で測定されます。 ラージオブジェクトのデータ型が CLOB の場合には、長さとオフセットは文字数で測定されます。
APPEND
APPEND ストアドプロシージャは、ラージオブジェクトを別のオブジェクトに追加するために使用されます。 2 つのラージオブジェクトのデータ型は同じである必要があります。
APPEND(dest_lob IN OUT { BLOB | CLOB }, src_lob { BLOB | CLOB })| パラメーター | 説明 |
| destロブ | 追加先のラージオブジェクトの場所を指定します。 dest_lobパラメーターのデータ型は、src_lobパラメーターのデータ型と同じである必要があります。 |
| srcロブ | 追加するラージオブジェクトの場所を指定します。 src_lobパラメーターのデータ型は、dest_lobパラメーターのデータ型と同じである必要があります。 |
COMPARE
COMPARE関数は、指定された長さの指定されたオフセットで2つの大きなオブジェクトを比較します。 比較される 2 つのラージオブジェクトのデータ型は同じである必要があります。
ステータスINTEGER COMPARE(lob_1 { BLOB | CLOB} 、
lob_2 { BLOB | CLOB }
[, amount INTEGER [, offset_1 INTEGER [, offset_2 INTEGER ]]]) | パラメーター | 説明 |
| lob_1 | 最初のラージオブジェクトの場所を指定します。 lob_1パラメーターのデータ型は、lob_2パラメーターのデータ型と同じである必要があります。 |
| lob_2 | 2 番目のラージオブジェクトの場所を指定します。 lob_2パラメーターのデータ型は、lob_1パラメーターのデータ型と同じである必要があります。 |
| amount |
|
| offset 1 | 比較を開始する最初のラージオブジェクト内の位置を指定します。 デフォルト値は 1 です。 |
| offset_2 | 比較を開始する 2 番目のラージオブジェクト内の位置を指定します。 デフォルト値は 1 です。 |
| status |
|
CONVERTTOBLOB
CONVERTTOBLOB ストアドプロシージャは、CLOB データ型のラージオブジェクトを BLOB データ型のラージオブジェクトに変換するために使用されます。
CONVERTTOBLOB(dest_lob IN OUT BLOB, src_clob CLOB,
amount INTEGER, dest_offset IN OUT INTEGER,
src_offset IN OUT INTEGER, blob_csid NUMBER,
lang_context IN OUT INTEGER、警告OUT INTEGER) | パラメーター | 説明 |
| destロブ | BLOB データ型の変換先のラージオブジェクトを指定します。 |
| srcクロブ | CLOB データ型の変換先のラージオブジェクトを指定します。 |
| amount | src_clobパラメーターで指定したラージオブジェクトで変換する文字数を指定します。 |
| dest_offset IN | 書き込み操作を開始するターゲットラージオブジェクト内のバイトの位置を指定します。 |
| dest_offset OUT | 書き込み操作が完了した後のターゲットのラージオブジェクト内のバイト位置を指定します。 |
| srcオフセットIN | 変換が開始される変換元のラージオブジェクト内の文字の場所を指定します。 |
| src_offset OUT | 変換が完了した後の変換元のラージオブジェクト内の文字の位置を指定します。 |
| ブロブcsid | 変換先のラージオブジェクトの文字セット ID を指定します。 |
| langcontext IN | 変換の言語環境を指定します。 通常はデフォルト値0が使用されます。 |
| langcontext OUT | 変換が完了した後の言語環境を指定します。 |
| warning |
|
CONVERTTOCLOB
CONVERTTOCLOB ストアドプロシージャは、BLOB データ型のラージオブジェクトを CLOB データ型のラージオブジェクトに変換するために使用されます。
CONVERTTOCLOB(dest_lob IN OUT CLOB, src_blob BLOB,
amount INTEGER, dest_offset IN OUT INTEGER,
src_offset IN OUT INTEGER, blob_csid NUMBER,
lang_context IN OUT INTEGER、警告OUT INTEGER) | パラメーター | 説明 |
| destロブ | CLOB データ型の変換先のラージオブジェクトを指定します。 |
| src_blob | BLOB データ型の変換元のラージオブジェクトを指定します。 |
| amount | src_blobパラメーターで指定したラージオブジェクトで変換するバイト数を指定します。 |
| dest_offset IN | 書き込み操作を開始する対象のラージオブジェクト内の文字の位置を指定します。 |
| dest_offset OUT | 書き込み操作が完了した後のターゲットラージオブジェクト内の文字の位置を指定します。 |
| srcオフセットIN | 変換が開始される変換元のラージオブジェクトのバイト位置を指定します。 |
| src_offset OUT | 変換が完了した後の変換元のラージオブジェクト内のバイト位置を指定します。 |
| ブロブcsid | 変換先のラージオブジェクトの文字セット ID を指定します。 |
| CLOB。 langcontext IN | 変換の言語環境を指定します。 通常はデフォルト値0が使用されます。 |
| langcontext OUT | 変換が完了した後の言語環境を指定します。 |
| warning |
|
COPY
COPY ストアドプロシージャは、ラージオブジェクトを別のオブジェクトにコピーするために使用されます。 コピー元のラージオブジェクトとコピー先のラージオブジェクトのデータ型は同じである必要があります。
COPY(dest_lob IN OUT { BLOB | CLOB }, src_lob)
{BLOB | CLOB} 、
amount INTEGER
[, dest_offset INTEGER [, src_offset INTEGER ]]) | パラメーター | 説明 |
| destロブ | コピー元のラージオブジェクトのコピー先となるコピー先のラージオブジェクトの場所を指定します。 このパラメーターのデータ型は、src_lobパラメーターのデータ型と同じである必要があります。 |
| srcロブ | コピーするターゲットのラージオブジェクトの場所を指定します。 このパラメーターのデータ型は、dest_lobパラメーターのデータ型と同じである必要があります。 |
| amount | src_lobパラメーターで指定したラージオブジェクトにコピーするバイト数または文字数を指定します。 |
| destオフセット | コピー元のラージオブジェクトの書き込みを開始するターゲットのラージオブジェクト内の場所を指定します。 デフォルト値は 1 です。 |
| srcオフセット | コピー操作が開始されるコピー元のラージオブジェクト内の文字の位置を指定します。 デフォルト値は 1 です。 |
ERASE
ERASEストアドプロシージャは、ラージオブジェクト内のデータの一部を消去するために使用されます。 BLOB データ型のラージオブジェクトの場合、指定された部分は 0 バイトのフィルターに置き換えられます。 CLOB データ型のラージオブジェクトの場合、指定された部分はスペースで置き換えられます。 この操作では、ラージオブジェクトのサイズは変更されません。
ERASE(lob_loc IN OUT { BLOB | CLOB} 、金額IN OUT INTEGER)
[, オフセットINTEGER ]) | パラメーター | 説明 |
| ロブloc | 削除するラージオブジェクトを指定します。 |
| amount IN | ラージオブジェクトで消去するバイト数または文字数を指定します。 |
| amount OUT | 消去されたバイト数または文字数を指定します。 指定されたバイト数または文字数が消去される前にラージオブジェクトの終わりに到達した場合、出力値は入力値よりも小さくなります。 |
| offset | ラージオブジェクト内で消去操作を開始する場所を指定します。 デフォルト値は 1 です。 |
GET_STORAGE_LIMIT
GET_STORAGE_LIMIT 関数は、ラージオブジェクトが使用できる最大ストレージスペースを取得するために使用されます。
サイズINTEGET_STORAGE_LIMIT (lob_loc BLOB)
サイズINTEGET_STORAGE_LIMIT (lob_loc CLOB) | パラメーター | 説明 |
| size | データベースのラージオブジェクトが使用できる最大ストレージ領域を指定します。 |
| ロブloc | このパラメーターは、Oracle データベースとの互換性を確保するために提供されており、実行時に無視することができます。 |
GETLENGTH
GETLENGTH 関数は、ラージオブジェクトの長さを取得するために使用されます。
量INTEGER GETLENGTH(lob_loc BLOB)
金額INTEGER GETLENGTH(lob_loc CLOB) | パラメーター | 説明 |
| ロブloc | ラージオブジェクトの名前を指定します。 |
| amount | ラージオブジェクトの長さを指定します。
|
INSTR
INSTR関数は、指定されたパターンがラージオブジェクト内で指定されたn回目に現れる位置を取得するために使用されます。
position INTEGER INSTR(lob_loc { BLOB | CLOB },
pattern { RAW | VARCHAR2 } [, offset INTEGER [, nth INTEGER ]]) | パラメーター | 説明 |
| ロブloc | ラージオブジェクトの名前を指定します。 |
| pattern | ラージオブジェクトで照合するパターンを指定します。 パターンは、バイトまたは文字の組み合わせです。
|
| offset | lob_locパラメーターで指定したラージオブジェクト内のパターンの検索を開始する位置を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 デフォルト値は 1 です。 |
| nth | 指定されたパターンが指定されたオフセットから表示されるn回目を指定します。 デフォルト値は 1 です。 |
| position | 指定されたパターンがラージオブジェクト内で指定されたn回目に表示される位置を指定します。 指定したオフセットから検索が開始されます。 |
READ
READストアドプロシージャは、大きなオブジェクトのデータの一部をバッファに読み込むために使用されます。
READ(lob_loc { BLOB | CLOB} 、INOUT BINARY_INTEGER、
オフセットINTEGER、バッファOUT { RAW | VARCHAR2 }) | パラメーター | 説明 |
| ロブloc | 読み込むラージオブジェクトを指定します。 |
| amount IN | 読み取るバイトまたは文字の総数を指定します。 |
| amount OUT | 読み取られたバイト数または文字数の合計を指定します。 読み取りに使用できるデータがもうない場合、0が返され、DATA_NOT_FOUND例外がスローされます。 |
| offset | ラージオブジェクト内で読み取り操作を開始する場所を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 |
| buffer | ラージオブジェクト内のデータの一部を受け取る変数を指定します。
|
SUBSTR
SUBSTR関数は、ラージオブジェクト内のデータの一部を取得するために使用されます。
データ {RAW | VARCHAR2 } SUBSTR(lob_loc { BLOB | CLOB})
[, amount INTEGER [, offset INTEGER ]]) | パラメーター | 説明 |
| ロブloc | 読み込むラージオブジェクトを指定します。 |
| amount | 返されるバイト数または文字数を指定します。 デフォルト値: 32,767 |
| offset | ラージオブジェクト内で読み取り操作を開始する場所を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 デフォルト値は 1 です。 |
| data | ラージオブジェクトの取得された部分を指定します。
|
TRIM
TRIM ストアドプロシージャは、ラージオブジェクトを指定した長さにトリミングするために使用されます。
トリム (lob_loc IN OUT { BLOB | CLOB} 、newlen INTEGER)| パラメーター | 説明 |
| ロブloc | トリミングするラージオブジェクトを指定します。 |
| newlen | トリミングするラージオブジェクトの合計バイト数または文字数を指定します。 |
WRITE
WRITE ストアドプロシージャは、ラージオブジェクトにデータを書き込むために使用されます。 指定された長さ内の指定されたオフセットから始まるラージオブジェクトからのデータは、バッファ内のデータによって上書きされる。
WRITE(lob_loc IN OUT { BLOB | CLOB} 、
amount BINARY_INTEGER,
オフセットINTEGER、バッファ {RAW | VARCHAR2 }) | パラメーター | 説明 |
| ロブloc | 書き込まれるラージオブジェクトを指定します。 |
| amount | ラージオブジェクトに書き込むバッファ内のバイト数または文字数を指定します。 |
| offset | 書き込み操作を開始するラージオブジェクト内のバイトまたは文字の位置を指定します。 |
| buffer | ラージオブジェクトの取得された部分を指定します。
|
WRITEAPPEND
WRITEAPPEND ストアドプロシージャは、ラージオブジェクトの最後にデータを追加するために使用されます。
WRITEAPPEND(lob_loc IN OUT { BLOB | CLOB} 、
金額BINARY_INTEGER, buffer { RAW | VARCHAR2 }) | パラメーター | 説明 |
| ロブloc | データを追加するラージオブジェクトを指定します。 |
| amount | ラージオブジェクトの最後に追加するバッファのバイト数または文字数を指定します。 |
| buffer | ラージオブジェクトの取得された部分を指定します。
|