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

OracleデータベースからExcelスプレッドシートを作成する

    問題は、あなたの「複雑な構造」がどれほど複雑かということだと思います。

    Oracle SQLDeveloperやQuestTOADなどのプログラミングIDEには、データテーブルをCSVファイルにエクスポートするためのウィザードがあります。

    複数のテーブルのデータを結合する場合は、ビューを使用するか、SQLステートメントを作成することもできます

    select e.ename||','||d.dname
    from   emp e
           join dept d on ( e.deptno = d.deptno )
    /
    

    (列にはコンマを含むデータが含まれることが多いため、区切り文字として、より一般的でない文字(または文字のセット)を使用することをお勧めします。)

    soemthingを実行するもう1つの簡単な方法は、SQL*PlusのHTMLレポート機能を使用することです。多くのスプレッドシートツールは、適切に構造化されたHTMLとXMLをスナッチなしでインポートできます。詳細をご覧ください。

    階層構造やさらに複雑なものをフラット化する場合は、おそらくPL/SQLに移行する必要があります。手作業によるアプローチでは、UTL_FILEを使用するように適合された上記のステートメントの変形を使用します:

    declare
        csv_fh  utl_file.filetype;
    begin
        csv_fh := utl_file.fopen('C:\temp', 'data_export.csv', 'W');
        for r in   (  select e.ename, d.dname
                      from   emp e
                      join dept d on ( e.deptno = d.deptno )
                    ) loop
            utl_file.put_line(csv_fh, r.ename||'|'||r.dname;
        end loop;
        utl_file.fclose(csv_fh);
    end;
    

    特にExcel(つまり、.XLSファイル)にエクスポートする場合は、Oracleの組み込み機能を超える必要があります。 PL / SQLからExcelに直接エクスポートするための通常のソリューションは、SYLKAPI用のTomKyteのOWA_SYLKラッパーです。詳細をご覧ください。

    これは単一のワークシートで機能します。複数のワークシートにエクスポートする場合は、いくつかの代替ソリューションがあります。

    SanjeevSapreにはget_xl_xmlパッケージがあります。名前が示すように、XMLを使用して変換を実行します。詳細をご覧ください。

    Jason Bennettは、ExcelXMLドキュメントを生成するPL/SQLオブジェクトを作成しました。詳細をご覧ください。



    1. SOUNDSLIKE演算子がMySQLでどのように機能するか

    2. SQLiteで外部キーをドロップする方法

    3. Oracleのテーブルでのシーケンスギャップの検索

    4. EBS12.2ビジョンインスタンスのインストールを実行する方法