以下は、PLSQLプロシージャを使用してOracleのCSVファイルにデータをエクスポートするためのステップバイステップの例です。この例では、データはスコットスキーマのEmpテーブルの一部のフィールドからエクスポートされています。 UTL_FILE Oracleパッケージを使用してCSVファイルに変換します。次の手順に従って、OracleデータベーステーブルからCSVファイルにデータをエクスポートします。 1。 CSVファイルを書き込むディレクトリオブジェクトを作成します。
--Windowsシステムの場合、次のように作成します。ディレクトリで強調表示されているフォルダを変更しますCREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
--Unix / Linuxシステムの場合、次のように作成しますCREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
注:フォルダの場所をディレクトリの場所に変更します(例:c:\abcまたは/abc /)。 2。 Scottスキーマでデータベースプロシージャを作成するか、別のスキーマで作成する場合は、そのスキーマにEmpテーブルがあることを確認してください。そうでない場合は、他のテーブルのカーソルとフィールド参照を変更する必要があります。
CREATE OR REPLACE PROCEDURE export_to_csv
IS
v_file UTL_FILE.file_type;
v_string VARCHAR2 (4000);
CURSOR c_emp
IS
SELECT empno,
ename,
deptno,
sal,
comm
FROM emp;
BEGIN
v_file :=
UTL_FILE.fopen ('CSVDIR',
'empdata.csv',
'w',
1000);
-- if you do not want heading then remove below two lines
v_string := 'Emp Code, Emp Name, Dept, Salary, Commission';
UTL_FILE.put_line (v_file, v_string);
FOR cur IN c_emp
LOOP
v_string :=
cur.empno
|| ','
|| cur.ename
|| ','
|| cur.deptno
|| ','
|| cur.sal
|| ','
|| cur.comm;
UTL_FILE.put_line (v_file, v_string);
END LOOP;
UTL_FILE.fclose (v_file);
EXCEPTION
WHEN OTHERS
THEN
IF UTL_FILE.is_open (v_file)
THEN
UTL_FILE.fclose (v_file);
END IF;
END;
3。次に、次の手順を実行します。
BEGIN
export_to_csv;
END;
これで、[ディレクトリの作成]コマンドで指定したディレクトリを、ファイル empdata.csvで確認できます。 テーブルデータとともに存在する必要があります。 オンラインで手順を生成するユーティリティを作成しました: - PL/SQLプロシージャをオンラインで生成してテーブルからデータをエクスポートする