如何使用Squirrel将SQL查询的结果存储在CSV文件中?

ale*_*lex 21 sql csv postgresql squirrel-sql

版本3.0.3.这是一个相当大的结果集,大约300万行.

Rod*_*Rod 30

马丁几乎有这个权利.

该TL/DR版本是你所需要的"SQLScripts"插件(这是"标准"插件之一),然后就可以选择这些菜单选项: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. 导出完整结果

    打开Session菜单.选择Scripts项目(几乎位于此长菜单的底部).选择Store Result of SQL in File.

    这将打开一个对话框,您可以在其中配置导出.确保你检查Export the complete result set一切.


我没有尝试使用300万行结果集,但我注意到Squirrel似乎将数据流式传输到磁盘(而不是在写入之前将其全部读入内存),所以我没有看到任何理由为什么它不会使用任意大的文件.

请注意,您可以使用Ctrl-T调用工具弹出窗口并选择直接导出到文件sql2file.


Mar*_*sny 5

我找到了一种方法,在Squirrel中有一个很好的支持.运行SQL select(导出器将忽略100行限制,不用担心).然后,在主菜单中,选择"文件"中的"会话","脚本","存储SQL的结果".默认情况下,此功能可能不存在,它可能存在于某个标准插件中(但默认情况下不安装).我不知道哪个插件.


the*_*iko 2

从 GUI 运行:

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

  • 请注意,这将在*服务器*上运行复制过程。因此,如果它是远程服务器,文件将转储到该服务器上,而不是本地计算机上。同样,您需要确保服务器进程具有写入权限。如果您使用 psql,您可以使用 \copy 而不是 copy 来在客户端获取它 - 不确定 squirrel 是否有类似的东西。 (2认同)