sql >> データベース >  >> RDS >> Oracle

PLSQLプロシージャを使用してOracleのCSVファイルにデータをエクスポートする方法

    以下は、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プロシージャをオンラインで生成してテーブルからデータをエクスポートする
    1. 要求されたサービスを作成できません[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

    2. 配列をMySQLストアドルーチンに渡す

    3. MySQLに存在する場合のドロップテーブル

    4. 区切られた文字列をOracleの行に変換します