2016/04/23

PL/SQLからテキストファイルへ出力

UTL_FILEを使ってPL/SQLからテキストファイル出力する場合のサンプルコード。
固定長、CSVともに、SQLで整形して出力可能。

SQLPLUS & SPOOLの代替案。

  • Source

DECLARE
l_filename VARCHAR2(300) :='<FILENAME>'; -- 出力するファイル名
l_fh UTL_FILE.FILE_TYPE;
l_dir VARCHAR2(300) :='<DIRECTORY_NAME>';-- 出力先
BEGIN
l_fh := UTL_FILE.FOPEN(l_dir,l_filename,'W'); -- STEP1: FILE OPEN
FOR cu_rec in (
--SQL statement
select 'A'||
rpad(substr(<Columnname>,6),6,' ') || --- 一部切り出す場合
rpad(<Columnname>,20,' ') ||
rpad(NVL(<Columnname>,' '),60,' ') -- NULL の場合は空白とか
) TEXT
from <table>
where 1=1)
LOOP
UTL_FILE.PUT_LINE(l_fh,cu_rec.TEXT); -- STEP2: 出力
-- dbms_output.put_line (cu_rec.TEXT);
END LOOP;
UTL_FILE.FCLOSE(l_fh); -- STEP3: FILE CLOSE
END;


0 件のコメント:

コメントを投稿