2010-02-22 60 views

回答

3

运行:

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

+1

请注意,这将在* server *上运行复制过程。因此,如果它是远程服务器,则该文件将被转储到该服务器上,而不是您的本地计算机。同样,您需要确保服务器进程具有写入权限。如果您使用psql,您可以使用\ copy而不是副本来获取它在客户端 - 不知道松鼠是否有类似的东西。 – 2010-02-23 08:09:16

3

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

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

4

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

22

马丁几乎有这个权利。

的TL/DR版本是你所需要的“SQLScripts”插件(这是“标准的一个“插件),然后就可以选择这些菜单选项:Session>Scripts>Store Result of SQL in File

我m看3.4版我不知道什么时候引入了这个功能,但是如果你没有,也可能需要升级,不能安装SQLScripts插件

安装新插件的说明可以在下面找到: http://squirrel-sql.sourceforge.net/user-manual/quick_start.html#plugins

但是,如果您正在执行全新安装松鼠,您可以在安装过程中简单地选择“SQLScripts”插件。

这里的长版本:


  1. 运行查询

    连接到数据库。点击SQL标签。输入您的查询。点击运行按钮(或Ctrl-Enter)。

    您应该在窗格下半部分的结果区域中看到大约前100行(取决于您如何配置Limit Rows选项)。

  2. 导出结果

    打开Session菜单。选择Scripts项目(几乎在这个长菜单的底部)。选择Store Result of SQL in File

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


我没有了一枚300万行的结果集试过,但我注意到,松鼠似乎流的数据到磁盘(而不是读它全部写下来之前内存),所以我没有看到任何理由为什么它不适用于任意大的文件。

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

+0

只是一个快速更新:昨天我碰巧使用这个特性从数据仓库模式中导出了约800万行。 Squirrel/SQLScripts像冠军一样工作。 – Rod 2012-10-18 13:10:53

+0

当我尝试“在文件中存储SQL的结果”时,它返回“方法不支持” – 2014-04-23 23:50:02

+0

我觉得他们正试图隐藏它! – 2017-06-08 19:19:51

0

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

相关问题