SUBSTR 関数は、LOB の amount バイトまたは文字(LOB からの絶対オフセットから計算)を返します。
固定幅 n バイトの CLOB の場合、SUBSTR の入力が (32767/n) より大きいと、SUBSTR は長さ (32767/n) または CLOB の長さ(どちらか小さい方)を返します。CLOB は可変幅の文字セットであるため、n は CLOB の最大バイト幅です。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
DBMS_LOB.SUBSTR (
lob_loc IN BLOB,
amount IN INTEGER := 32767,
offset IN INTEGER := 1)
RETURN RAW;
DBMS_LOB.SUBSTR (
lob_loc IN CLOB CHARACTER SET ANY_CS,
amount IN INTEGER := 32767,
offset IN INTEGER := 1)
RETURN VARCHAR2;
パラメータの説明
パラメータ |
説明 |
|---|---|
| lob_loc | 読み取る LOB のロケーターです。DBMS_LOB 使用说明 を参照してください。 |
| amount | 読み取るバイト数(BLOB の場合)または文字数(CLOB の場合)。 |
| offset | LOB の読み取り開始バイト数(BLOB の場合)または文字数(CLOB の場合)のオフセット(初期値は1)。 |
戻り値
戻り値 |
説明 |
|---|---|
| RAW | パラメータに BLOB を含む関数のオーバーロード。 |
| VARCHAR2 | CLOB バージョン。 |
| NULL | 以下のいずれかの場合があります:
|
使用方法
VARCHAR2バッファの形式はCLOBパラメータの形式と一致している必要があります。つまり、LOBパラメータの型をCLOBとして指定した場合、バッファにはCHARデータを含める必要があります。クライアントから
DBMS_LOB.SUBSTRを呼び出すと、返されるバッファにはクライアントの文字セットのデータが含まれます。データベースは、ユーザーにバッファを返す前に、サーバーの文字セットからLOB値をクライアントの文字セットに変換します。DBMS_LOB.SUBSTRは、LOBに格納されている文字に基づいて8191文字以上を返します。文字のバイトサイズが利用可能なバッファを超えるためにすべての文字が返されない場合、ユーザーは新しいオフセットでDBMS_LOB.SUBSTRを呼び出して残りの文字を読み取るか、すべてのデータが取得されるまでサブルーチンを繰り返し呼び出す必要があります。必要に応じて、
SUBSTRは読み取り前にLOBを取得します。