PL/SQLでCLOBデータをエクスポートする方法
PL/SQLでは、DBMS_LOBパッケージのEXPORTプロシージャを使用してCLOBデータをエクスポートできます。 次に例を示します。
DECLARE
lc_clob CLOB;
ln_file UTL_FILE.FILE_TYPE;
ln_amount NUMBER := 32767;
ln_offset NUMBER := 1;
BEGIN
-- 获取CLOB数据
SELECT clob_column INTO lc_clob FROM your_table WHERE id = 1;
-- 打开文件
ln_file := UTL_FILE.FOPEN('DIRECTORY_NAME', 'file.txt', 'W');
-- 导出CLOB数据到文件
WHILE ln_offset < DBMS_LOB.GETLENGTH(lc_clob) LOOP
UTL_FILE.PUT(ln_file, DBMS_LOB.SUBSTR(lc_clob, ln_amount, ln_offset));
ln_offset := ln_offset + ln_amount;
END LOOP;
-- 关闭文件
UTL_FILE.FCLOSE(ln_file);
END;
上記の例では、まずSELECT文でCLOBデータを取得し、変数lc_clobへ格納します。次にUTL_FILE.FOPENでファイルを開き、ループ内でDBMS_LOB.SUBSTR関数を使ってCLOBデータの一部を取得し、ファイルへ書き込みます。全てのCLOBデータが出力されるまで続け、最後に、UTL_FILE.FCLOSEでファイルを閉じます。
サンプル中のDIRECTORY_NAMEは、データベースサーバー上に存在し、書き込み可能な実際のディレクトリ名に置き換える必要があります。