版本 3.0.3。这是一个相当大的结果集,大约 300 万行。
5 回答
马丁几乎有这个权利。
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”插件。
这是长版本:
运行查询
连接到数据库。单击
SQL
选项卡。输入您的查询。点击运行按钮(或Ctrl-Enter
)。您应该在窗格下半部分的结果区域中看到前 100 行左右(取决于您如何配置该
Limit Rows
选项)。导出完整结果
打开
Session
菜单。选择Scripts
项目(几乎在这个长菜单的底部)。选择Store Result of SQL in File
。这将打开一个对话框,您可以在其中配置导出。确保检查
Export the complete result set
以获取所有内容。
我没有尝试过使用 300 万行结果集,但我注意到 Squirrel 似乎将数据流式传输到磁盘(而不是在写入之前将其全部读入内存),所以我看不出它有任何理由不能处理任意大的文件。
请注意,您可以使用Ctrl-T
调用工具弹出窗口并选择直接导出到文件sql2file
。
我找到了一种方法来做到这一点,松鼠对此有很好的支持。运行 SQL 选择(导出器将忽略 100 行限制,不用担心)。然后,在主菜单中,选择 Session、Scripts、Store Result of SQL in File。此功能可能默认不存在,它可能存在于某些标准插件中(但默认未安装)。虽然不知道是哪个插件。
我还想使用 SquirrelSQL 将 SQL 查询的结果导出到 CSV 文件。但是根据更改文件,似乎即使在 SquirrelSql 3.3.0 中也不支持此功能。
到目前为止,我只能通过右键单击表 > 导出到 CSV 导出 SQL 查询的“结果表”中显示的数据。默认情况下,表大小为 100 行,CSV 导出也是如此。您可以在会话属性 > SQL > 限制行中更改表大小。例如,将大小更改为 10000,您的导出也将包含 10000 行。问题是,SquirrelSql 将如何处理非常大的结果集(数百万行)......
从您的 GUI 运行:
COPY (SELECT * FROM some_table) TO '/some/path/some_table.csv' WITH CSV HEADER
使用 Squirrel 3.5.0 如果您只有一个简单的 Select 查询,那么“将 SQL 结果存储为文件”非常有用。一个更复杂的参数将不起作用。即使尝试将超过 600,000 行的结果导出到 CSV 文件也可能会失败。