web-dev-qa-db-ja.com

Squirrelを使用してSQLクエリの結果をCSVファイルに保存するにはどうすればよいですか?

バージョン3.0.3。これはかなり大きな結果セットであり、約300万行です。

22
alex

マーティンはこの権利をかなり持っています。

TL/DRバージョンでは、「SQLScripts」プラグイン(「標準」プラグインの1つ)が必要であり、次のメニューオプションを選択できます。Session> Scripts> Store Result of SQL in File

私はバージョン3.4を見ています。この機能がいつ導入されたかはわかりませんが、SQLScriptsプラグインがなく、インストールできない場合は、アップグレードする必要があるかもしれません。

新しいプラグインのインストール手順は次の場所にあります http://squirrel-sql.sourceforge.net/user-manual/quick_start.html#plugins

しかし、Squirrelの新規インストールを実行している場合は、インストール中に「SQLScripts」プラグインを選択するだけで済みます。

これは長いバージョンです:


  1. クエリを実行します

    データベースに接続します。 SQLタブをクリックします。クエリを入力します。実行ボタン(またはCtrl-Enter)を押します。

    ペインの下半分の結果領域に最初の100行程度が表示されます(Limit Rowsオプションの構成方法によって異なります)。

  2. full結果をエクスポート

    Sessionメニューを開きます。 Scriptsアイテムを選択します(この長いメニューの下部にあります)。 Store Result of SQL in Fileを選択します。

    これにより、エクスポートを構成できるダイアログボックスが開きます。すべてを取得するには、必ずExport the complete result setを確認してください。


300万行の結果セットでこれを試したことはありませんが、Squirrelはデータを(書き込み前にすべてメモリに読み込むのではなく)ディスクにストリーミングしているように見えるので、なぜそうなるのかわかりません。任意の大きなファイルでは機能しません。

Ctrl-Tを使用してツールポップアップを呼び出し、sql2fileを選択することで、ファイルに直接エクスポートできることに注意してください。

30
Rod

私はこれを行う方法を見つけました、Squirrelでこれに対する素晴らしいサポートがあります。 SQL選択を実行します(100行の制限はエクスポーターによって無視されます、心配しないでください)。次に、メインメニューで、[セッション]、[スクリプト]、[SQLの結果をファイルに保存]の順に選択します。この機能はデフォルトでは存在しない可能性があります。一部の標準プラグインには存在する可能性があります(ただしデフォルトではインストールされません)。しかし、どのプラグインかわかりません。

5
Martin Vysny

また、SquirrelSQLを使用して、SQLクエリの結果をCSVファイルにエクスポートしたいと考えていました。しかし changes file によると、SquirrelSql 3.3.0でもこの機能はサポートされていないようです。

これまでのところ、テーブルを右クリックして[SQLにエクスポート]をクリックすると、SQLクエリの「結果テーブル」に表示されるデータのみをエクスポートできました。テーブルサイズはデフォルトで100行であり、CSVエクスポートも同様です。セッションプロパティ> SQL>行の制限でテーブルサイズを変更できます。例えば。サイズを10000に変更すると、エクスポートにも10000行が含まれます。問題は、SquirrelSqlが非常に大きな結果セット(数百万行)をどのように処理するかということです...

3
Michal Vician

GUIから実行します。

COPY (SELECT * FROM some_table) TO '/some/path/some_table.csv' WITH CSV HEADER

3
thetaiko

Squirrel 3.5.0の使用「SQLの結果をファイルとして保存」は、単純な選択クエリしかない場合に最適です。パラメータを持つより複雑なものは機能しません。 600,000行以上の結果をCSVファイルにエクスポートしようとしても失敗する可能性があります。

0
user2649863