ERASE ステートメントは、内部 LOB の一部または全部を削除するために使用されます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
DBMS_LOB.ERASE (
lob_loc IN OUT NOCOPY BLOB,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER := 1);
DBMS_LOB.ERASE (
lob_loc IN OUT NOCOPY CLOB CHARACTER SET ANY_CS,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER := 1);
パラメータの説明
| パラメータ | 説明 |
|---|---|
| lob_loc | 削除するLOBのロケーター。詳細については、DBMS_LOB使用方法を参照してください。 |
| amount | 消去するバイト数(BLOB)または文字数(CLOB)。 |
| offset | LOBで始まる絶対オフセット(原点は1)であり、バイト(BLOB)または文字(CLOB)単位です。 |
使用方法は以下のとおりです:
LOBの途中データを消去する際、それぞれBLOBまたはCLOBにゼロバイトのフィラーまたはスペースを書き込みます。指定された数値より前に
LOB値の末尾に達した場合、実際に消去されるバイト数または文字数はamountパラメータで指定された数値と異なる場合があります。実際に削除される文字数またはバイト数はamountパラメータで返されます。注意
LOBの一部データのみを消去した場合、LOBの長さは短縮されません。LOB値の長さを短縮するには、TRIM を参照してください。
異常時の対応
| 異常 | 説明 |
|---|---|
| VALUE_ERROR | 入力パラメータがすべてNULLである場合。 |
| INVALID_ARGVAL | 次のいずれかの状況が発生した場合:
|
| QUERY_WRITE | クエリ内でLOB書き込みを実行できません。 |
| BUFFERING_ENABLED | LOB上でバッファリングが有効になっている場合、LOBバッファリングを有効にした状態で操作を実行することはできません。 |