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

SQLclを使用するときにOracleクエリ結果をJSONファイルにエクスポートする方法

    Oracle DatabaseでSQLclを使用する場合、SPOOLを使用してクエリ結果をJSONファイルにエクスポートできます。 コマンド。

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

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

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

    • 最初の行はSQLFORMATを設定します jsonへ 。これにより、結果の.jsonが確実になります 実際、ファイルにはJSONが含まれています。または、json-formattedを使用することもできます より人間に優しい形式でJSONを出力します(これについては後で詳しく説明します)。
    • 2行目はSPOOLを使用しています 出力ファイルが書き込まれる場所を指定するコマンド。必ず/Users/barney/data/regions.jsonを変更してください システム上の場所と適切なファイル名に移動します。
    • 3行目で、SQLクエリを実行しました。これはエクスポートする結果です。この場合、regions全体をエクスポートしました テーブル。
    • 次に、SPOOLに切り替えました オフ。
    • 最後に、SQLFORMATを設定しました ansiconsoleであった元の設定に戻します 。これはオプションです– jsonのままにしておくことができます 必要に応じて、または別のものに変更してください。

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

    {"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
    [
    {"region_id":1,"region_name":"Europe"}
    ,{"region_id":2,"region_name":"Americas"}
    ,{"region_id":3,"region_name":"Asia"}
    ,{"region_id":4,"region_name":"Middle East and Africa"}
    ]}]}
    4 rows selected. 

    前述のように、json-formattedを使用するオプションもあります インデントなどを使用して、より人間にわかりやすい形式でJSONを出力します。この例をこの記事の最後に含めました。

    フィードバックを削除

    X rows selected SET FEEDBACK offを使用 :

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

    結果:

    {"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
    [
    {"region_id":1,"region_name":"Europe"}
    ,{"region_id":2,"region_name":"Americas"}
    ,{"region_id":3,"region_name":"Asia"}
    ,{"region_id":4,"region_name":"Middle East and Africa"}
    ]}]}
    

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

    結果を追加

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

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

    例:

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

    結果のファイル:

    {"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
    [
    {"region_id":1,"region_name":"Europe"}
    ,{"region_id":2,"region_name":"Americas"}
    ,{"region_id":3,"region_name":"Asia"}
    ,{"region_id":4,"region_name":"Middle East and Africa"}
    ]}]}
    {"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
    [
    {"region_id":1,"region_name":"Europe"}
    ,{"region_id":2,"region_name":"Americas"}
    ,{"region_id":3,"region_name":"Asia"}
    ,{"region_id":4,"region_name":"Middle East and Africa"}
    ]}]}
    

    この例では、前の例で作成(および入力)されたファイルに結果を追加しました。これにより、クエリ出力がファイルに複製されました。

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

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

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

    結果のファイル:

    {"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
    [
    {"region_id":1,"region_name":"Europe"}
    ,{"region_id":2,"region_name":"Americas"}
    ,{"region_id":3,"region_name":"Asia"}
    ,{"region_id":4,"region_name":"Middle East and Africa"}
    ]}]}
    

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

    フォーマットされたJSON

    または、json-formattedを使用することもできます より人間に優しい形式でJSONを出力するには:

    SET SQLFORMAT json-formatted;
    SPOOL '/Users/barney/data/regions_formatted.json';
    SELECT * FROM regions;
    SPOOL off;
    SET SQLFORMAT ansiconsole;

    結果:

    {
      "results" : [
        {
          "columns" : [
            {
              "name" : "REGION_ID",
              "type" : "NUMBER"
            },
            {
              "name" : "REGION_NAME",
              "type" : "VARCHAR2"
            }
          ],
          "items" : [
            {
              "region_id" : 1,
              "region_name" : "Europe"
            },
            {
              "region_id" : 2,
              "region_name" : "Americas"
            },
            {
              "region_id" : 3,
              "region_name" : "Asia"
            },
            {
              "region_id" : 4,
              "region_name" : "Middle East and Africa"
            }
          ]
        }
      ]
    }
    

    1. 2017 @ Somenines:お客様のストーリーを祝う

    2. SQL Serverデータベースを縮小するにはどうすればよいですか?

    3. MariaDB ColumnStore1.1.3GAを搭載した新しいMariaDBAXリリース

    4. SQL Serverで外部キーの依存関係を見つける方法は?