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_offsetIN OUT, src_offset IN OUT,blob_csid, lang_context IN OUT,warning OUT) | ストアドプロシージャ | N/A | 文字をバイナリデータに変換します。 |
CONVERTTOCLOB(dest_lob IN OUT,src_blob, amount, dest_offsetIN OUT, src_offset IN OUT,blob_csid, lang_context IN OUT,warning OUT) | ストアドプロシージャ | N/A | バイナリデータを文字に変換します。 |
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 | 指定されたオフセットで始まるラージオブジェクト内のパターンの位置を取得します。 |
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 | バッファからラージオブジェクトの最後にデータを書き込みます。 |
Oracle 互換の POLARDB の DBMS_SQL パッケージは、Oracle のバージョンと比較すると、部分的にのみ実装されています。 Oracle 互換の POLARDB は、上表にリストされている関数とストアドプロシージャのみをサポートしています。
下表に、パッケージで使用できるパブリック変数の一覧を示します。
パブリック変数 | データ型 | Value |
---|---|---|
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_lob | 追加先のラージオブジェクトの場所を指定します。 dest_lob パラメーターのデータ型は、src_lob パラメーターのデータ型と同じである必要があります。 |
src_lob | 追加するラージオブジェクトの場所を指定します。 src_lob パラメーターのデータ型は、dest_lob パラメーターのデータ型と同じである必要があります。 |
COMPARE
COMPARE ストアドプロシージャは、指定された長さ内の指定されたオフセットで、2 つのラージオブジェクトをバイト単位で比較します。 比較される 2 つのラージオブジェクトのデータ型は同じである必要があります。
status 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 | ラージオブジェクトのデータ型が BLOB の場合、オブジェクトは指定されたバイト数内で比較されます。 ラージオブジェクトのデータ型が CLOB の場合、オブジェクトは指定された文字数の範囲内で比較されます。 amount パラメーターのデフォルト値は、ラージオブジェクトの最大サイズです。 |
offset 1 | 比較を開始する最初のラージオブジェクト内の位置を指定します。 最初のバイトまたは文字の位置には、オフセット 1 のラベルが付いています。 デフォルト値は 1 です。 |
offset_2 | 比較を開始する 2 番目のラージオブジェクト内の位置を指定します。 最初のバイトまたは文字の位置には、オフセット 1 のラベルが付いています。 デフォルト値は 1 です。 |
status | 比較結果を指定します。 2 つのラージオブジェクトが指定されたオフセットで指定された長さ内で同じ場合、0 (ゼロ) が返されます。 オブジェクトが同じでない場合は、ゼロ以外の値が返されます。 amount、offset_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, warning OUT INTEGER)
パラメーター
パラメーター | 説明 |
---|---|
dest_lob | BLOB データ型の変換先のラージオブジェクトを指定します。 CONVERTTOBLOB ストアドプロシージャを使用して、CLOB データ型のラージオブジェクトを BLOB データ型のラージオブジェクトに変換することができます。 |
src_clob | CLOB データ型の変換元のラージオブジェクトを指定します。 CONVERTTOBLOB ストアドプロシージャを使用して、BLOB データ型のラージオブジェクトを CLOB データ型のラージオブジェクトに変換することができます。 |
amount | src_clob パラメーターで指定されたラージオブジェクトで変換される文字数を指定します。 |
dest_offset IN | 変換元のラージオブジェクトの書き込みを開始するターゲットのラージオブジェクト内のバイト位置を指定します。 最初のバイトにはオフセット 1 のラベルが付いています。 |
dest_offset OUT | 書き込み操作が完了した後のターゲットのラージオブジェクト内のバイト位置を指定します。 最初のバイトにはオフセット 1 のラベルが付いています。 |
src_offset IN | 変換が開始される変換元のラージオブジェクト内の文字の場所を指定します。 最初の文字はオフセット 1 としてラベル付けされます。 |
src_offset OUT | 変換が完了した後の変換元のラージオブジェクト内の文字の位置を指定します。 最初の文字はオフセット 1 としてラベル付けされます。 |
blob_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, warning OUT INTEGER)
パラメーター
パラメーター | 説明 |
---|---|
dest_lob | CLOB データ型の変換先のラージオブジェクトを指定します。 CONVERTTOBLOB ストアドプロシージャを使用して、BLOB データ型のラージオブジェクトを CLOB データ型のラージオブジェクトに変換することができます。 |
src_blob | BLOB データ型の変換元のラージオブジェクトを指定します。 CONVERTTOBLOB ストアドプロシージャを使用して、CLOB データ型のラージオブジェクトを BLOB データ型のラージオブジェクトに変換することができます。 |
amount | src_blob パラメーターで指定されたラージオブジェクトで変換されるバイト数を指定します。 |
dest_offset IN | 変換元のラージオブジェクトの書き込みを開始するターゲットのラージオブジェクト内の文字の位置を指定します。 最初の文字はオフセット 1 としてラベル付けされます。 |
dest_offset OUT | 書き込み操作の完了後、CLOB データ型のターゲットのラージオブジェクト内の文字の場所を指定します。 最初の文字はオフセット 1 としてラベル付けされます。 |
src_offset IN | 変換が開始される変換元のラージオブジェクトのバイト位置を指定します。 最初のバイトにはオフセット 1 のラベルが付いています。 |
src_offset OUT | 変換が完了した後の変換元のラージオブジェクト内のバイト位置を指定します。 最初のバイトにはオフセット 1 のラベルが付いています。 |
blob_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 ]])
パラメーター
パラメーター | 説明 |
---|---|
dest_lob | コピー元のラージオブジェクトのコピー先となるコピー先のラージオブジェクトの場所を指定します。 パラメーターのデータ型は、src_lob パラメーターで指定されたラージオブジェクトと同じである必要があります。 |
src_lob | コピーするターゲットのラージオブジェクトの場所を指定します。 パラメーターのデータ型は、dest_lob パラメーターで指定されたラージオブジェクトと同じである必要があります。 |
amount | src_lob パラメーターで指定されたラージオブジェクトにコピーされるバイト数または文字数を指定します。 |
dest_offset | コピー元のラージオブジェクトの書き込みを開始するターゲットのラージオブジェクト内の場所を指定します。 最初の位置にはオフセット 1 のラベルが付いています。 デフォルト値は 1 です。 |
src_offset | コピー操作が開始されるコピー元のラージオブジェクト内の文字の位置を指定します。 最初の場所にはオフセット 1 のラベルが付いています。 デフォルト値は 1 です。 |
ERASE
ERASE ストアドプロシージャは、ラージオブジェクトのデータの一部を消去するために使用されます。 BLOB データ型のラージオブジェクトの場合、指定された部分は 0 バイトのフィルターに置き換えられます。 CLOB データ型のラージオブジェクトの場合、指定された部分はスペースで置き換えられます。 この操作では、ラージオブジェクトのサイズは変更されません。
ERASE(lob_loc IN OUT { BLOB | CLOB }, amount IN OUT INTEGER
[, offset INTEGER ])
パラメーター
パラメーター | 説明 |
---|---|
lob_loc | 消去するラージオブジェクトを指定します。 |
amount IN | ラージオブジェクトで消去するバイト数または文字数を指定します。 |
amount OUT | 消去されたバイト数または文字数を指定します。 指定されたバイト数または文字数が消去される前にラージオブジェクトの終わりに到達した場合、出力値は入力値よりも小さくなります。 |
offset | 消去を開始するラージオブジェクト内の場所を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 デフォルト値は 1 です。 |
GET_STORAGE_LIMIT
GET_STORAGE_LIMIT 関数は、ラージオブジェクトが使用できる最大ストレージスペースを取得するために使用されます。
size INTEGER GET_STORAGE_LIMIT(lob_loc BLOB)
size INTEGER GET_STORAGE_LIMIT(lob_loc CLOB)
パラメーター
パラメーター | 説明 |
---|---|
size | データベースのラージオブジェクトが使用できる最大ストレージ領域を指定します。 |
lob_loc | このパラメーターは、Oracle データベースとの互換性を確保するために提供されており、実行時に無視することができます。 |
GETLENGTH
amount INTEGER GETLENGTH(lob_loc BLOB)
amount INTEGER GETLENGTH(lob_loc CLOB)
パラメーター
パラメーター | 説明 |
---|---|
lob_loc | ラージオブジェクトの場所を指定します。 GETLENGTH 関数を使用して、オブジェクトの長さを取得することができます。 |
amount | ラージオブジェクトの長さを指定します。 BLOB データ型のラージオブジェクトの場合、長さはバイト単位で測定されます。 CLOB データ型のラージオブジェクトの場合、長さは文字数で測定されます。 |
INSTR
INSTR 関数は、ラージオブジェクト内で、指定されたパターンが指定された n 番目に出現する位置を取得するために使用されます。
position INTEGER INSTR(lob_loc { BLOB | CLOB },
pattern { RAW | VARCHAR2 } [, offset INTEGER [, nth INTEGER ]])
パラメーター
パラメーター | 説明 |
---|---|
lob_loc | INSTR 関数を使用して指定したパターンを検索できるラージオブジェクトの場所を指定します。 |
pattern | ラージオブジェクトで照合するパターンを指定します。 パターンは、バイトまたは文字の組み合わせです。 ラージオブジェクトのデータ型が BLOB の場合、パターンのデータ型は RAW である必要があります。 ラージオブジェクトのデータ型が CLOB の場合、パターンのデータ型は VARCHAR2 ある必要があります。 |
offset | lob_loc パラメーターで指定されたラージオブジェクト内のパターンの検索を開始する位置を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 デフォルト値は 1 です。 |
nth | 指定されたオフセットからパターンが出現する n 番目の回数を指定します。 デフォルト値は 1 です。 |
position | ラージオブジェクト内で、指定した n 回目にパターンが表示される位置を指定します。 指定したオフセットから検索が開始されます。 |
READ
READ(lob_loc { BLOB | CLOB }, amount IN OUT BINARY_INTEGER,
offset INTEGER, buffer OUT { RAW | VARCHAR2 })
パラメーター
パラメーター | 説明 |
---|---|
lob_loc | 読み取るラージオブジェクトの場所を指定します。 |
amount IN | 読み取るバイトまたは文字の総数を指定します。 |
amount OUT | 読み取られたバイトまたは文字の総数を指定します。 読み取るデータがなくなると、0 が返され、DATA_NOT_FOUND 例外がスローされます。 |
offset | ラージオブジェクト内で読み取り操作を開始する場所を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 |
buffer | ラージオブジェクトの一部を受け取る変数を指定します。 lob_loc パラメーターのデータ型が BLOB の場合、バッファパラメーターのデータ型は RAW である必要があります。 lob_loc パラメーターのデータ型が CLOB の場合、バッファパラメーターのデータ型は VARCHAR2 である必要があります。 |
SUBSTR
data { RAW | VARCHAR2 } SUBSTR(lob_loc { BLOB | CLOB }
[, amount INTEGER [, offset INTEGER ]])
パラメーター
パラメーター | 説明 |
---|---|
lob_loc | 読み取るラージオブジェクトの場所を指定します。 |
amount | 返されるバイト数または文字数を指定します。 デフォルト値は 32,767 です。 |
offset | 読み取りを開始するラージオブジェクト内の位置を指定します。 最初のバイトまたは文字がオフセット 1 としてラベル付けされます。 デフォルト値は 1 です。 |
data | ラージオブジェクトの取得された部分を指定します。 lob_loc パラメーターのデータ型が BLOB の場合、バッファパラメーターのデータ型は RAW である必要があります。 lob_loc パラメーターのデータ型が CLOB の場合、データパラメーターのデータ型は VARCHAR2 である必要があります。 |
TRIM
TRIM ストアドプロシージャは、ラージオブジェクトを指定した長さにトリミングするために使用されます。
TRIM(lob_loc IN OUT { BLOB | CLOB }, newlen INTEGER)
パラメーター
パラメーター | 説明 |
---|---|
lob_loc | トリミングするラージオブジェクトの場所を指定します。 |
newlen | トリミングするラージオブジェクトの合計バイト数または文字数を指定します。 |
WRITE
WRITE ストアドプロシージャは、ラージオブジェクトにデータを書き込むために使用されます。 ラージオブジェクト内の指定されたオフセット内の指定された長さ内のデータは、バッファ内のデータによって上書きされます。
WRITE(lob_loc IN OUT { BLOB | CLOB },
amount BINARY_INTEGER,
offset INTEGER, buffer { RAW | VARCHAR2 })
パラメーター
パラメーター | 説明 |
---|---|
lob_loc | 書き込むラージオブジェクトの場所を指定します。 |
amount | ラージオブジェクトに書き込むバッファ内のバイト数または文字数を指定します。 |
offset | 書き込み操作を開始するラージオブジェクト内のバイトまたは文字の位置を指定します。 オフセットの値は 1 から始まります。 |
buffer | ラージオブジェクトに書き込むバッファ内のデータを指定します。 lob_loc パラメーターのデータ型が BLOB の場合、バッファパラメーターのデータ型は RAW である必要があります。 lob_loc パラメーターのデータ型が CLOB の場合、バッファパラメーターのデータ型は VARCHAR2 である必要があります。 |
WRITEAPPEND
WRITEAPPEND ストアドプロシージャは、ラージオブジェクトの最後にデータを追加するために使用されます。
WRITEAPPEND(lob_loc IN OUT { BLOB | CLOB },
amount BINARY_INTEGER, buffer { RAW | VARCHAR2 })
パラメーター
パラメーター | 説明 |
---|---|
lob_loc | データが追加されるラージオブジェクトの場所を指定します。 |
amount | ラージオブジェクトの最後に追加するバッファのバイト数または文字数を指定します。 |
buffer | ラージオブジェクトに追加するデータを指定します。 lob_loc パラメーターのデータ型が BLOB の場合、バッファパラメーターのデータ型は RAW である必要があります。 lob_loc パラメーターのデータ型が CLOB の場合、バッファパラメーターのデータ型は VARCHAR2 である必要があります。 |