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

SQLcl(Oracle)を使用しているときにクエリ結果を.txtファイルにエクスポートする方法

    Oracle Databaseに照会するときは、SPOOLを使用できます。 SQLclを使用するときに、クエリ結果をテキストファイルにエクスポートするコマンド。

    テーブル全体をエクスポートする例を次に示します。

     SPOOL '/Users/barney/data/regions.txt';
    SELECT * FROM regions;
    SPOOL off; 

    行ごとに次のようになりました:

    • 最初の行はSPOOLを使用しています 出力ファイルが書き込まれる場所を指定するコマンド。必ず/Users/barney/data/regions.txtを変更してください システム上の場所と適切なファイル名に移動します。
    • 2行目で、SQLクエリを実行しました。これはエクスポートする結果です。この場合、regions全体をエクスポートしました テーブル。
    • 次に、SPOOLに切り替えました オフ。

    結果のファイルは次のようになります。

     REGION_ID REGION_NAME _____________________________________1ヨーロッパ2アメリカ3アジア4中東およびアフリカ4行が選択されています。 

    私の場合、SQLFORMAT ansiconsoleに設定されました 、したがって、出力はそれを反映します。

    これは、適切な形式に変更できます。

    sql*loaderでインポートファイルとして使用できる形式で結果をエクスポートする例を次に示します。

     SET SQLFORMAT loader
    SPOOL '/Users/barney/data/regions_loader.txt';
    SELECT * FROM regions;
    SPOOL off;
    SET SQLFORMAT ansiconsole 

    結果:

    1|「ヨーロッパ」| 2|「南北アメリカ」| 3|「アジア」| 4|「中東およびアフリカ」|4行が選択されました。 

    この場合、SQLFORMATもリセットします ansiconsoleに戻る 一度SPOOL 操作が完了しました。

    フィードバックを削除

    X rows selected SET FEEDBACK offを使用 :

     SET SQLFORMAT ansiconsole
    SET FEEDBACK off
    SPOOL '/Users/barney/data/regions_no_feedback.txt';
    SELECT * FROM regions;
    SPOOL off;
    SET FEEDBACK on 

    結果:

     REGION_ID REGION_NAME _____________________________________1ヨーロッパ2南北アメリカ3アジア4中東およびアフリカ

    この場合、私はFEEDBACKをオンにしました ファイルをエクスポートした後、元に戻します。

    結果を追加

    デフォルトでは、SPOOL REPLACEを使用します 、ファイルがすでに存在する場合はファイルを置き換えます。

    ただし、APPENDは使用できます 結果をファイルに追加するための引数。

    例:

     SET SQLFORMAT ansiconsole
    SET FEEDBACK off
    SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
    SELECT * FROM regions;
    SPOOL off;
    SET FEEDBACK on 

    結果のファイル:

     REGION_ID REGION_NAME _____________________________________1ヨーロッパ2アメリカ3アジア4中東およびアフリカREGION_IDREGION_NAME_____________________________________1ヨーロッパ2アメリカ3アジア4中東およびアフリカ
     この例では、前の例で作成(および入力)されたファイルに結果を追加しました。その結果、結果がファイルに複製されました。

    既存のファイルを上書きする

    REPLACEを使用できます 既存のファイルを新しいクエリの結果で上書きするには:

     SET SQLFORMAT ansiconsole
    SET FEEDBACK off
    SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
    SELECT * FROM regions;
    SPOOL off;
    SET FEEDBACK on 

    結果のファイル:

     REGION_ID REGION_NAME _____________________________________1ヨーロッパ2南北アメリカ3アジア4中東およびアフリカ

    前述のように、REPLACE はデフォルト設定なので、この引数を完全に省略できたはずです。


    1. Oracleでフィールドの値が変更されたときに行番号をインクリメントする

    2. Windows 10にMySQLをインストールするにはどうすればいいですか? –MySQLをインストールするためのワンストップソリューション

    3. PostgreSQLで文字列値(evalなど)内でクエリを実行する方法はありますか?

    4. SQLServerのデフォルトインスタンスとSQLServerの名前付きインスタンスに接続する方法-SQLServer/TSQLチュートリアルパート2