33.10 NEXT_CHUNKファンクション

このファンクションは、CLOBから固定長の文字列を読み取ります。これはDBMS_LOB.READを隠す小さなラッパーですが、オフセットを増分し、最大チャンク・サイズを選択する際に一般的なエラーを回避できます。

構文

function next_chunk (
    p_str    in            clob,
    p_chunk  out           nocopy varchar2,
    p_offset in out nocopy pls_integer,
    p_amount in            pls_integer default 8191 )
    return boolean;     

パラメータ

表33-10 NEXT_CHUNKファンクションのパラメータ

パラメータ 説明

p_str

入力clob。

p_chunk

チャンクの値(in/out)。

p_offset

p_strの位置。ここで、次のチャンクを(in/out)から読み取ります。

p_amount

読み取る必要がある文字数(デフォルトは8191)。

戻り値

別のチャンクを読み取る可能性がある場合はTruep_strの終了を過ぎて読み取る場合はFalse

入力CLOBの25バイトのチャンクを出力します。

declare
    l_input  clob := 'The quick brown fox jumps over the lazy dog';
    l_offset pls_integer;
    l_chunk  varchar2(20);
begin
    while apex_string.next_chunk (
              p_str    => l_input,
              p_chunk  => l_chunk,
              p_offset => l_offset,
              p_amount => 20 )
    loop
       sys.dbms_output.put_line(l_chunk);
    end loop;
end;

Output:
  The quick brown fox
  jumps over the lazy
  dog