TRIM ストアドプロシージャは、内部 LOB の値を newlen パラメータで指定された長さにトリムします。
TRIM ストアドプロシージャは、BLOB に対してバイト単位の長さを指定し、CLOB に対して文字単位の長さを指定します。
説明
TRIM ストアドプロシージャは、LOB の長さを newlen パラメータで指定された値に短縮します。
空の LOB に対して TRIM を実行しても結果はなく、TRIM はエラーを返しません。newlen で新たに指定された長さが LOB のサイズを超える場合、例外が発生します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみ提供されます。
構文
DBMS_LOB.TRIM (
lob_loc IN OUT NOCOPY BLOB,
newlen IN INTEGER);
DBMS_LOB.TRIM (
lob_loc IN OUT NOCOPY CLOB CHARACTER SET ANY_CS,
newlen IN INTEGER);
パラメータの説明
パラメータ |
説明 |
|---|---|
| lob_loc | 内部 LOB のロケーターで、その長さを調整します。詳細については、DBMS_LOB 使用说明を参照してください。 |
| newlen | トリム後の新しい LOB の長さ値(BLOB の場合はバイト、CLOB の場合は文字)。 |
例外
例外 |
説明 |
|---|---|
| VALUE_ERROR | lob_loc の値が NULL です。 |
| INVALID_ARGVAL | 以下のいずれかの場合があります:
|
| QUERY_WRITE | クエリまたはPDML並列実行サーバー内で LOB 書き込みを実行できません。 |
| BUFFERING_ENABLED | LOB でバッファリングが有効になっている場合、LOB バッファを有効にした状態で操作を実行できません。 |
使用方法
LOB操作をOpen/Closeインターフェースで囲むことは必須ではありません。操作を実行する前にLOBを開いていない場合、呼び出し中にLOB列上の機能インデックスとドメインインデックスが更新されます。操作を実行する前にLOBを開いている場合は、トランザクションをコミットする前にそれを閉じる必要があります。内部LOBを閉じると、LOB列上の機能インデックスとドメインインデックスが更新されます。LOB操作をOpen/Close APIで囲まない場合、LOBに書き込むたびに機能インデックスとドメインインデックスが更新されます。パフォーマンスへの悪影響を避けるため、LOBへの書き込み操作はOPENまたはCLOSEステートメント内に含めることを推奨します。必要に応じて、指定された新しい長さが0でない限り、
TRIMはLOBの長さを変更する前にLOBを取得します。