READ ステートメントは、LOB で始まる指定されたオフセットからデータを読み取り、buffer パラメータに返すために使用されます。
amountパラメータには、実際に読み取られたバイト数または文字数が返されます。入力されたオフセットが LOB の終端を超えると、amount は0に設定され、NO_DATA_FOUND 例外が発生します。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
DBMS_LOB.READ (
lob_loc IN BLOB,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER,
buffer OUT RAW);
DBMS_LOB.READ (
lob_loc IN CLOB CHARACTER SET ANY_CS,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER,
buffer OUT VARCHAR2 CHARACTER SET ANY_CS);
パラメータの説明
パラメータ |
説明 |
|---|---|
| lob_loc | 読み取る LOB のロケーターです。DBMS_LOB 使用说明を参照してください。 |
| file_loc | チェックする LOB のファイルロケーターです。 |
| amount | 読み取るバイト数(BLOBの場合)または文字数(CLOBの場合)、または既に読み取った文字数。 |
| offset | LOB の読み取り開始オフセットです。 |
| buffer | 読み取り操作の出力バッファです。 |
例外
例外 |
説明 |
|---|---|
| VALUE_ERROR | lob_loc、mount または offset パラメータのいずれかが NULL の場合。 |
| INVALID_ARGVAL | 以下のいずれかの場合があります:
|
| NO_DATA_FOUND | LOB の終端に到達し、LOB から読み取るバイトまたは文字がないこと、つまり amount の値が0であることを示します。 |
使用方法
VARCHAR2バッファの形式は、CLOBパラメータの形式と一致している必要があります。言い換えれば、LOBパラメータの型をCLOBとして指定した場合、バッファにはCHARデータを含める必要があります。クライアントから
DBMS_LOB.READを呼び出すと、返されるバッファの値にはクライアントの文字セットのデータが含まれます。データベースは、ユーザーにバッファの値を返す前に、サーバーの文字セットからLOB値をクライアントの文字セットに変換します。必要に応じて、
READにLOBの取得を読み取り前に行わせることができます。