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

时间:2010-02-22 20:46:00

标签: sql postgresql csv squirrel-sql

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

5 个答案:

答案 0 :(得分:29)

马丁几乎有这个权利。

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以获取所有内容。


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

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

答案 1 :(得分:5)

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

答案 2 :(得分:3)

从GUI运行:

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

答案 3 :(得分:3)

我还想使用SquirrelSQL将SQL查询的结果导出到CSV文件。但是根据changes file,似乎即使在SquirrelSql 3.3.0中也不支持此功能。

到目前为止,我只能通过右键单击表格>导出SQL查询的“结果表”中显示的数据。导出为CSV。表格大小默认为100行,CSV导出也是如此。您可以在会话属性>中更改表格大小。 SQL>限制行。例如。将大小更改为10000,导出也将包含10000行。问题是,SquirrelSql将如何处理非常大的结果集(数百万行)......

答案 4 :(得分:0)

使用Squirrel 3.5.0 如果您只有一个简单的Select查询,那么“将SQL结果存储为文件”非常棒。一个更复杂的参数不会工作。 即使尝试将600,000多行的结果导出到CSV文件也可能失败。