OracleでCLOBの内容を取得の方法
Oracleでは、DBMS_LOBパッケージ内のファンクションを使用してCLOBの内容を読み込むことができます。以下に例を示します。
DECLARE
l_clob CLOB;
l_buffer VARCHAR2(32767);
l_amount INTEGER := 32767;
l_position INTEGER := 1;
BEGIN
-- 读取CLOB的内容
SELECT clob_column INTO l_clob FROM your_table WHERE your_condition;
-- 读取CLOB的内容到缓冲区
DBMS_LOB.READ(l_clob, l_amount, l_position, l_buffer);
DBMS_OUTPUT.PUT_LINE(l_buffer);
END;
上のサンプルでは、まずCLOB型のカラムの値をl_clobという変数に格納しています。その後、DBMS_LOB.READ関数を使ってCLOBの中身をl_bufferというバッファに読み込み、DBMS_OUTPUT.PUT_LINE関数を使って出力しています。
CLOB は場合により非常に容量が大きいので、一度に全部を読み取ることができない場合があります。その場合は、CLOB の内容をすべて読み尽くすまで、繰り返し読み取り処理を行うようにしてください。