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を取得します。