すべてのプロダクト
Search
ドキュメントセンター

PolarDB:DBMS_LOB

最終更新日:Jun 05, 2024

DBMS_LOB パッケージは、ラージオブジェクトに対して操作を実行するために使用されます。

表1. 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/ACLOBデータ型のラージオブジェクトを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/ABLOBデータ型のラージオブジェクトを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パッケージで使用できるパブリック変数を示します。
表2. DBMS_LOBパッケージのパブリック変数
パブリック変数データ型変数値
compress offINTEGER0
compress_onINTEGER1
deduplicate_offINTEGER0
deduplicate_onINTEGER4
default_csidINTEGER0
default_lang_ctxINTEGER0
encrypt_offINTEGER0
encrypt_onINTEGER1
file_readonlyINTEGER0
lobmaxsizeINTEGER1073741823
lob_readonlyINTEGER0
lob_readwriteINTEGER1
no_warningINTEGER0
opt_compressINTEGER1
opt_deduplicateINTEGER4
opt_encryptINTEGER2
warn_inconvertible_charINTEGER1
説明 以下のセクションでは、ラージオブジェクトのデータ型が BLOB の場合、オブジェクトの長さとオフセットはバイト単位で測定されます。 ラージオブジェクトのデータ型が CLOB の場合には、長さとオフセットは文字数で測定されます。

APPEND

APPEND ストアドプロシージャは、ラージオブジェクトを別のオブジェクトに追加するために使用されます。 2 つのラージオブジェクトのデータ型は同じである必要があります。
APPEND(dest_lob IN OUT { BLOB | CLOB }, src_lob { BLOB | CLOB })
表3. パラメーター
パラメーター説明
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 ]]]) 
表4. パラメーター
パラメーター説明
lob_1最初のラージオブジェクトの場所を指定します。 lob_1パラメーターのデータ型は、lob_2パラメーターのデータ型と同じである必要があります。
lob_22 番目のラージオブジェクトの場所を指定します。 lob_2パラメーターのデータ型は、lob_1パラメーターのデータ型と同じである必要があります。
amount
  • ラージオブジェクトのデータ型がBLOBの場合、オブジェクトのバイト数が比較されます。
  • ラージオブジェクトのデータ型がCLOBの場合、オブジェクトの文字数が比較されます。
amount パラメーターのデフォルト値は、ラージオブジェクトの最大サイズです。
offset 1比較を開始する最初のラージオブジェクト内の位置を指定します。 デフォルト値は 1 です。
offset_2比較を開始する 2 番目のラージオブジェクト内の位置を指定します。 デフォルト値は 1 です。
status
  • 比較結果を指定します。 2つの大きなオブジェクトが指定された長さ内の指定されたオフセットで同じである場合、0が返されます。
  • オブジェクトが同じでない場合は、ゼロ以外の値が返されます。
  • amountoffset_1、またはoffset_2パラメーターの値が0より小さい場合、NULLが返されます。

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) 
表5. パラメーター
パラメーター説明
destロブBLOB データ型の変換先のラージオブジェクトを指定します。
srcクロブCLOB データ型の変換先のラージオブジェクトを指定します。
amountsrc_clobパラメーターで指定したラージオブジェクトで変換する文字数を指定します。
dest_offset IN書き込み操作を開始するターゲットラージオブジェクト内のバイトの位置を指定します。
dest_offset OUT書き込み操作が完了した後のターゲットのラージオブジェクト内のバイト位置を指定します。
srcオフセットIN変換が開始される変換元のラージオブジェクト内の文字の場所を指定します。
src_offset OUT変換が完了した後の変換元のラージオブジェクト内の文字の位置を指定します。
ブロブcsid変換先のラージオブジェクトの文字セット ID を指定します。
langcontext IN変換の言語環境を指定します。 通常はデフォルト値0が使用されます。
langcontext OUT変換が完了した後の言語環境を指定します。
warning
  • 変換が成功した場合、0 が返されます。
  • 変換が失敗した場合、1 が返されます。

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) 
表6. パラメーター
パラメーター説明
destロブCLOB データ型の変換先のラージオブジェクトを指定します。
src_blobBLOB データ型の変換元のラージオブジェクトを指定します。
amountsrc_blobパラメーターで指定したラージオブジェクトで変換するバイト数を指定します。
dest_offset IN書き込み操作を開始する対象のラージオブジェクト内の文字の位置を指定します。
dest_offset OUT書き込み操作が完了した後のターゲットラージオブジェクト内の文字の位置を指定します。
srcオフセットIN変換が開始される変換元のラージオブジェクトのバイト位置を指定します。
src_offset OUT変換が完了した後の変換元のラージオブジェクト内のバイト位置を指定します。
ブロブcsid変換先のラージオブジェクトの文字セット ID を指定します。
CLOB。 langcontext IN変換の言語環境を指定します。 通常はデフォルト値0が使用されます。
langcontext OUT変換が完了した後の言語環境を指定します。
warning
  • 変換が成功した場合、0 が返されます。
  • 変換が失敗した場合、1 が返されます。

COPY

COPY ストアドプロシージャは、ラージオブジェクトを別のオブジェクトにコピーするために使用されます。 コピー元のラージオブジェクトとコピー先のラージオブジェクトのデータ型は同じである必要があります。
COPY(dest_lob IN OUT { BLOB | CLOB }, src_lob)
{BLOB | CLOB} 、
  amount INTEGER
  [, dest_offset INTEGER [, src_offset INTEGER ]]) 
表7. パラメーター
パラメーター説明
destロブコピー元のラージオブジェクトのコピー先となるコピー先のラージオブジェクトの場所を指定します。 このパラメーターのデータ型は、src_lobパラメーターのデータ型と同じである必要があります。
srcロブコピーするターゲットのラージオブジェクトの場所を指定します。 このパラメーターのデータ型は、dest_lobパラメーターのデータ型と同じである必要があります。
amountsrc_lobパラメーターで指定したラージオブジェクトにコピーするバイト数または文字数を指定します。
destオフセットコピー元のラージオブジェクトの書き込みを開始するターゲットのラージオブジェクト内の場所を指定します。 デフォルト値は 1 です。
srcオフセットコピー操作が開始されるコピー元のラージオブジェクト内の文字の位置を指定します。 デフォルト値は 1 です。

ERASE

ERASEストアドプロシージャは、ラージオブジェクト内のデータの一部を消去するために使用されます。 BLOB データ型のラージオブジェクトの場合、指定された部分は 0 バイトのフィルターに置き換えられます。 CLOB データ型のラージオブジェクトの場合、指定された部分はスペースで置き換えられます。 この操作では、ラージオブジェクトのサイズは変更されません。
ERASE(lob_loc IN OUT { BLOB | CLOB} 、金額IN OUT INTEGER)
  [, オフセットINTEGER ]) 
表8. パラメーター
パラメーター説明
ロブ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) 
表9. パラメーター
パラメーター説明
sizeデータベースのラージオブジェクトが使用できる最大ストレージ領域を指定します。
ロブlocこのパラメーターは、Oracle データベースとの互換性を確保するために提供されており、実行時に無視することができます。

GETLENGTH

GETLENGTH 関数は、ラージオブジェクトの長さを取得するために使用されます。
量INTEGER GETLENGTH(lob_loc BLOB)

金額INTEGER GETLENGTH(lob_loc CLOB) 
表10. パラメーター
パラメーター説明
ロブlocラージオブジェクトの名前を指定します。
amountラージオブジェクトの長さを指定します。
  • BLOB データ型のラージオブジェクトの場合、長さはバイト単位で測定されます。
  • CLOB データ型のラージオブジェクトの場合、長さは文字数で測定されます。

INSTR

INSTR関数は、指定されたパターンがラージオブジェクト内で指定されたn回目に現れる位置を取得するために使用されます。
position INTEGER INSTR(lob_loc { BLOB | CLOB },
  pattern { RAW | VARCHAR2 } [, offset INTEGER [, nth INTEGER ]]) 
表11. パラメーター
パラメーター説明
ロブlocラージオブジェクトの名前を指定します。
patternラージオブジェクトで照合するパターンを指定します。 パターンは、バイトまたは文字の組み合わせです。
  • lob_locパラメーターで指定されたラージオブジェクトのデータ型がBLOBの場合、パターンのデータ型はRAWでなければなりません。
  • lob_locパラメーターで指定されたラージオブジェクトのデータ型がCLOBの場合、パターンのデータ型はVARCHAR2でなければなりません。
offsetlob_locパラメーターで指定したラージオブジェクト内のパターンの検索を開始する位置を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 デフォルト値は 1 です。
nth指定されたパターンが指定されたオフセットから表示されるn回目を指定します。 デフォルト値は 1 です。
position指定されたパターンがラージオブジェクト内で指定されたn回目に表示される位置を指定します。 指定したオフセットから検索が開始されます。

READ

READストアドプロシージャは、大きなオブジェクトのデータの一部をバッファに読み込むために使用されます。
READ(lob_loc { BLOB | CLOB} 、INOUT BINARY_INTEGER、
  オフセットINTEGER、バッファOUT { RAW | VARCHAR2 }) 
表12. パラメーター
パラメーター説明
ロブloc読み込むラージオブジェクトを指定します。
amount IN読み取るバイトまたは文字の総数を指定します。
amount OUT読み取られたバイト数または文字数の合計を指定します。 読み取りに使用できるデータがもうない場合、0が返され、DATA_NOT_FOUND例外がスローされます。
offsetラージオブジェクト内で読み取り操作を開始する場所を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。
bufferラージオブジェクト内のデータの一部を受け取る変数を指定します。
  • lob_locパラメーターのデータ型がBLOBの場合、bufferパラメーターのデータ型はRAWでなければなりません。
  • lob_locパラメーターのデータ型がCLOBの場合、bufferパラメーターのデータ型はVARCHAR2でなければなりません。

SUBSTR

SUBSTR関数は、ラージオブジェクト内のデータの一部を取得するために使用されます。
データ {RAW | VARCHAR2 } SUBSTR(lob_loc { BLOB | CLOB})
  [, amount INTEGER [, offset INTEGER ]]) 
表13. パラメーター
パラメーター説明
ロブloc読み込むラージオブジェクトを指定します。
amount返されるバイト数または文字数を指定します。 デフォルト値: 32,767
offsetラージオブジェクト内で読み取り操作を開始する場所を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 デフォルト値は 1 です。
dataラージオブジェクトの取得された部分を指定します。
  • lob_locパラメーターのデータ型がBLOBの場合、dataパラメーターのデータ型はRAWでなければなりません。
  • lob_locパラメーターのデータ型がCLOBの場合、dataパラメーターのデータ型はVARCHAR2でなければなりません。

TRIM

TRIM ストアドプロシージャは、ラージオブジェクトを指定した長さにトリミングするために使用されます。
トリム (lob_loc IN OUT { BLOB | CLOB} 、newlen INTEGER)
表14. パラメーター
パラメーター説明
ロブlocトリミングするラージオブジェクトを指定します。
newlenトリミングするラージオブジェクトの合計バイト数または文字数を指定します。

WRITE

WRITE ストアドプロシージャは、ラージオブジェクトにデータを書き込むために使用されます。 指定された長さ内の指定されたオフセットから始まるラージオブジェクトからのデータは、バッファ内のデータによって上書きされる。
WRITE(lob_loc IN OUT { BLOB | CLOB} 、
  amount BINARY_INTEGER,
  オフセットINTEGER、バッファ {RAW | VARCHAR2 }) 
表15. パラメーター
パラメーター説明
ロブloc書き込まれるラージオブジェクトを指定します。
amountラージオブジェクトに書き込むバッファ内のバイト数または文字数を指定します。
offset書き込み操作を開始するラージオブジェクト内のバイトまたは文字の位置を指定します。
bufferラージオブジェクトの取得された部分を指定します。
  • lob_locパラメーターのデータ型がBLOBの場合、bufferパラメーターのデータ型はRAWでなければなりません。
  • lob_locパラメーターのデータ型がCLOBの場合、bufferパラメーターのデータ型はVARCHAR2でなければなりません。

WRITEAPPEND

WRITEAPPEND ストアドプロシージャは、ラージオブジェクトの最後にデータを追加するために使用されます。
WRITEAPPEND(lob_loc IN OUT { BLOB | CLOB} 、
  金額BINARY_INTEGER, buffer { RAW | VARCHAR2 }) 
表16. パラメーター
パラメーター説明
ロブlocデータを追加するラージオブジェクトを指定します。
amountラージオブジェクトの最後に追加するバッファのバイト数または文字数を指定します。
bufferラージオブジェクトの取得された部分を指定します。
  • lob_locパラメーターのデータ型がBLOBの場合、bufferパラメーターのデータ型はRAWでなければなりません。
  • lob_locパラメーターのデータ型がCLOBの場合、bufferパラメーターのデータ型はVARCHAR2でなければなりません。