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

PolarDB:DBMS_LOB\

最終更新日:Mar 28, 2026

DBMS_LOB パッケージは、ラージオブジェクト(LOB)を操作するためのサブプログラムを提供します。

BLOB 値の場合、すべての長さおよびオフセット値はバイト単位で測定されます。CLOB 値の場合は、文字単位で測定されます。

注意事項

  • すべての DBMS_LOB サブプログラムは LOB ロケータを使用して動作します。入力ロケータは、すでにデータベース内に存在する LOB を表している必要があります。

  • 書き込み操作ごとに機能インデックスおよびドメインインデックスが更新されるのを回避し、パフォーマンスへの大きな影響を防ぐため、書き込み操作は OPEN/CLOSE 呼び出しで囲んでください。

サブプログラム

サブプログラムタイプ戻り値の型説明
APPEND(dest_lob IN OUT, src_lob)ストアドプロシージャN/ALOB を別の LOB に追加します
COMPARE(lob_1, lob_2 [, amount [, offset_1 [, offset_2 ]]])関数INTEGER指定されたオフセットから指定された長さの範囲で、2 つの LOB をバイト単位で比較します
CONVERTTOBLOB(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/ALOB を別の LOB にコピーします
ERASE(lob_loc IN OUT, amount IN OUT [, offset ])ストアドプロシージャN/ALOB の一部を消去します
GET_STORAGE_LIMIT(lob_loc)関数INTEGERLOB に利用可能な最大ストレージ容量を返します
GETLENGTH(lob_loc)関数INTEGERLOB の長さを返します
INSTR(lob_loc, pattern [, offset [, nth ]])関数INTEGERLOB 内でパターンが n 回目に出現する位置を返します
READ(lob_loc, amount IN OUT, offset, buffer OUT)ストアドプロシージャN/ALOB の一部をバッファーに読み取ります
SUBSTR(lob_loc [, amount [, offset ]])関数RAW または VARCHAR2LOB の一部を返します
TRIM(lob_loc IN OUT, newlen)ストアドプロシージャN/ALOB を指定された長さにトリミングします
WRITE(lob_loc IN OUT, amount, offset, buffer)ストアドプロシージャN/ALOB にデータを書き込み、既存の内容を上書きします
WRITEAPPEND(lob_loc IN OUT, amount, buffer)ストアドプロシージャN/Aバッファーデータを LOB の末尾に追加します

パブリック変数

変数データ型説明
compress_offINTEGER0LOB 圧縮を無効化します
compress_onINTEGER1LOB 圧縮を有効化します
deduplicate_offINTEGER0LOB 重複排除を無効化します
deduplicate_onINTEGER4LOB 重複排除を有効化します
default_csidINTEGER0デフォルト文字セット ID
default_lang_ctxINTEGER0デフォルト言語コンテキスト
encrypt_offINTEGER0LOB 暗号化を無効化します
encrypt_onINTEGER1LOB 暗号化を有効化します
file_readonlyINTEGER0BFILE を読み取り専用モードで開きます
lobmaxsizeINTEGER1073741823LOB の最大サイズ
lob_readonlyINTEGER0LOB を読み取り専用モードで開きます
lob_readwriteINTEGER1LOB を読み取り/書き込みモードで開きます
no_warningINTEGER0警告を発行しません
opt_compressINTEGER1SecureFile LOB 作成時に圧縮を使用します
opt_deduplicateINTEGER4SecureFile LOB 作成時に重複排除を使用します
opt_encryptINTEGER2SecureFile LOB 作成時に暗号化を使用します
warn_inconvertible_charINTEGER1文字を変換できない場合に警告を発行します

APPEND

src_lobdest_lob の末尾に追加します。両方の LOB は同じデータの型である必要があります。

APPEND(dest_lob IN OUT { BLOB | CLOB }, src_lob { BLOB | CLOB })

パラメーター

パラメーター説明
dest_lob対象の LOB。src_lob と同じデータの型である必要があります。
src_lob追加するソース LOB。dest_lob と同じデータの型である必要があります。

COMPARE

指定されたオフセットから指定された長さの範囲で、2 つの LOB を比較します。両方の LOB は同じデータの型である必要があります。

status INTEGER COMPARE(lob_1 { BLOB | CLOB },
  lob_2 { BLOB | CLOB }
  [, amount INTEGER [, offset_1 INTEGER [, offset_2 INTEGER ]]])

パラメーター

パラメーター説明
lob_1最初の LOB。lob_2 と同じデータの型である必要があります。
lob_22 番目の LOB。lob_1 と同じデータの型である必要があります。
amount比較するバイト数(BLOB)または文字数(CLOB)。デフォルト:LOB の最大サイズ。
offset_1lob_1 内で比較を開始する位置。デフォルト:1。
offset_2lob_2 内で比較を開始する位置。デフォルト:1。
status比較結果:0 は指定範囲内で LOB が一致した場合、非ゼロ値は LOB が異なる場合、NULLamountoffset_1、または offset_2 が 0 未満の場合です。

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, warning OUT INTEGER)

パラメーター

パラメーター説明
dest_lob対象の BLOB。
src_clobソースの CLOB。
amountsrc_clob から変換する文字数。
dest_offset INdest_lob 内で書き込みを開始するバイト位置。
dest_offset OUT書き込み完了後の dest_lob 内のバイト位置。
src_offset INsrc_clob 内で変換を開始する文字位置。
src_offset OUT変換完了後の src_clob 内の文字位置。
blob_csid対象 BLOB の文字セット ID。
lang_context IN変換時の言語コンテキスト。ほとんどの場合、デフォルト値 0 を使用します。
lang_context OUT変換完了後の言語コンテキスト。
warning0、失敗した場合は 1

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, warning OUT INTEGER)

パラメーター

パラメーター説明
dest_lob対象の CLOB。
src_blobソースの BLOB。
amountsrc_blob から変換するバイト数。
dest_offset INdest_lob 内で書き込みを開始する文字位置。
dest_offset OUT書き込み完了後の dest_lob 内の文字位置。
src_offset INsrc_blob 内で変換を開始するバイト位置。
src_offset OUT変換完了後の src_blob 内のバイト位置。
blob_csid対象 CLOB の文字セット ID。
lang_context IN変換時の言語コンテキスト。ほとんどの場合、デフォルト値 0 を使用します。
lang_context OUT変換完了後の言語コンテキスト。
warning0、失敗した場合は 1

COPY

src_lob から amount バイトまたは文字を dest_lob にコピーします。両方の LOB は同じデータの型である必要があります。

COPY(dest_lob IN OUT { BLOB | CLOB }, src_lob { BLOB | CLOB },
  amount INTEGER
  [, dest_offset INTEGER [, src_offset INTEGER ]])

パラメーター

パラメーター説明
dest_lob対象の LOB。src_lob と同じデータの型である必要があります。
src_lobコピー元の LOB。dest_lob と同じデータの型である必要があります。
amountsrc_lob からコピーするバイト数または文字数。
dest_offsetdest_lob 内で書き込みを開始する位置。デフォルト:1。
src_offsetsrc_lob 内でコピーを開始する位置。デフォルト:1。

ERASE

LOB の一部を消去します。BLOB の場合は消去された部分がゼロバイトで置き換えられ、CLOB の場合はスペースで置き換えられます。LOB のサイズは変わりません。

ERASE(lob_loc IN OUT { BLOB | CLOB }, amount IN OUT INTEGER
  [, offset INTEGER ])

パラメーター

パラメーター説明
lob_loc消去する LOB。
amount IN消去するバイト数または文字数。
amount OUT実際に消去されたバイト数または文字数。LOB の末尾に到達して amount 分を消去する前に終了した場合、この値は入力された amount より小さくなります。
offsetLOB 内で消去を開始する位置。デフォルト:1。

GET_STORAGE_LIMIT

データベース内の LOB に利用可能な最大ストレージ容量を返します。

size INTEGER GET_STORAGE_LIMIT(lob_loc BLOB)

size INTEGER GET_STORAGE_LIMIT(lob_loc CLOB)

パラメーター

パラメーター説明
lob_locOracle Database との互換性のために提供されています。ランタイムでは無視されます。
sizeデータベース内の LOB に利用可能な最大ストレージ容量。

GETLENGTH

LOB の長さを返します。

amount INTEGER GETLENGTH(lob_loc BLOB)

amount INTEGER GETLENGTH(lob_loc CLOB)

パラメーター

パラメーター説明
lob_loc測定する LOB。
amountLOB の長さ:BLOB の場合はバイト単位、CLOB の場合は文字単位。

INSTR

指定されたオフセットから検索を開始し、LOB 内で pattern が n 回目に出現する位置を返します。

position INTEGER INSTR(lob_loc { BLOB | CLOB },
  pattern { RAW | VARCHAR2 } [, offset INTEGER [, nth INTEGER ]])

パラメーター

パラメーター説明
lob_loc検索対象の LOB。
pattern検索するパターン。BLOB の場合は RAW、CLOB の場合は VARCHAR2 を使用します。
offset検索を開始する位置。先頭のバイトまたは文字はオフセット 1 です。デフォルト:1。
nthoffset からの出現回数。デフォルト:1。
positionLOB 先頭からの pattern の n 回目の出現位置。

READ

LOB からデータをバッファーに読み取ります。

READ(lob_loc { BLOB | CLOB }, amount IN OUT BINARY_INTEGER,
  offset INTEGER, buffer OUT { RAW | VARCHAR2 })

パラメーター

パラメーター説明
lob_loc読み取る LOB。
amount IN読み取るバイト数または文字数。
amount OUT実際に読み取られたバイト数または文字数。これ以上データが利用できない場合、amount0 に設定され、DATA_NOT_FOUND 例外が発生します。
offsetLOB 内で読み取りを開始する位置。先頭のバイトまたは文字はオフセット 1 です。
bufferデータを受信する変数。BLOB の場合は RAW、CLOB の場合は VARCHAR2 を使用します。

SUBSTR

LOB の一部を返します。

data { RAW | VARCHAR2 } SUBSTR(lob_loc { BLOB | CLOB }
  [, amount INTEGER [, offset INTEGER ]])

パラメーター

パラメーター説明
lob_loc読み取る LOB。
amount返すバイト数または文字数。デフォルト:32,767。
offsetLOB 内で読み取りを開始する位置。先頭のバイトまたは文字はオフセット 1 です。デフォルト:1。
data返されるデータ。BLOB の場合は RAW 型、CLOB の場合は VARCHAR2 型です。

TRIM

LOB を指定された長さにトリミングします。

TRIM(lob_loc IN OUT { BLOB | CLOB }, newlen INTEGER)

パラメーター

パラメーター説明
lob_locトリミングする LOB。
newlenターゲット長(BLOB の場合はバイト単位、CLOB の場合は文字単位)。

WRITE

amount バイトまたは文字分のデータをバッファーから LOB に書き込み、offset 以降の既存の内容を上書きします。

WRITE(lob_loc IN OUT { BLOB | CLOB },
  amount BINARY_INTEGER,
  offset INTEGER, buffer { RAW | VARCHAR2 })

パラメーター

パラメーター説明
lob_loc書き込む LOB。
amountbuffer から書き込むバイト数または文字数。
offsetLOB 内で書き込みを開始する位置。
buffer書き込むデータ。BLOB の場合は RAW、CLOB の場合は VARCHAR2 を使用します。

WRITEAPPEND

バッファーデータを LOB の末尾に追加します。

WRITEAPPEND(lob_loc IN OUT { BLOB | CLOB },
  amount BINARY_INTEGER, buffer { RAW | VARCHAR2 })

パラメーター

パラメーター説明
lob_loc追加先の LOB。
amountbuffer から追加するバイト数または文字数。
buffer追加するデータ。BLOB の場合は RAW、CLOB の場合は VARCHAR2 を使用します。