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の読み取り前にLOBを取得できます。