253

我正在使用 Oracle SQL Developer 3.0。试图弄清楚如何将查询结果导出到文本文件(最好是 CSV)。右键单击查询结果窗口不会给我任何导出选项。

4

6 回答 6

388

我正在使用的版本

替代文字

2012 年 5 月 5 日更新

Jeff Smith博客中展示了我认为从 SQL Developer 获取 CSV 输出的最佳方法。Jeff 的方法如下图方法一所示:

方法一

将注释添加/*csv*/到您的 SQL 查询并将查询作为脚本运行(使用 F5 或工作表工具栏上的第二个执行按钮)

在此处输入图像描述

而已。

方法二

运行查询

替代文字

右键单击并选择卸载。

更新。在 Sql Developer 版本 3.0.04 中,卸载已更改为导出 感谢 Janis Peisenieks 指出这一点

替代文字

SQL Developer 版本 3.0.04 的修订屏幕截图

在此处输入图像描述

从格式下拉列表中选择 CSV

替代文字

并按照屏幕上的其余说明进行操作。

于 2010-11-12T21:02:42.923 回答
52

不完全是“导出”,但您可以选择要导出的网格中的行(或Ctrl-A选择所有行),然后使用Ctrl-进行复制C

默认为制表符分隔。您可以将其粘贴到 Excel 或其他编辑器中,然后随意操作分隔符。

此外,如果您使用Ctrl- Shift-C而不是Ctrl- C,您还将复制列标题。

于 2010-11-12T21:49:56.220 回答
30

仅供参考,您也可以将 替换/*csv*/ 为其他格式,包括/*xml*//*html*/. 例如, select/*xml*/ * from emp将返回一个带有查询结果的 xml 文档。我在寻找一种从查询中返回 xml 的简单方法时遇到了这篇文章。

于 2012-09-05T12:15:00.457 回答
6

仅供遇到问题的任何人参考,CSV 时间戳导出中存在一个错误,我只是花了几个小时解决这个问题。我需要导出的一些字段是时间戳类型。即使在当前版本(截至本文发布时为 3.0.04)中,CSV 导出选项似乎也无法将分组符号放在时间戳周围。非常令人沮丧,因为时间戳中的空格破坏了我的导入。我发现的最佳解决方法是在我的所有时间戳上使用 TO_CHAR() 编写查询,这会产生正确的输出,尽管需要做更多的工作。我希望这可以节省一些时间,或者让 Oracle 在他们的下一个版本中参与进来。

于 2011-05-13T20:36:01.540 回答
3

从 sql developer 导出到本地系统。

Path : C:\Source_Table_Extract\des_loan_due_dtls_src_boaf.csv

    SPOOL "Path where you want to save the file"
    SELECT /*csv*/ * FROM TABLE_NAME;
于 2018-05-07T19:50:22.363 回答
1

CSV 导出不会转义您的数据。注意以结尾的字符串,\因为结果\"看起来像转义"而不是\. 然后你有错误的数量,"你的整行都坏了。

于 2014-04-09T02:01:31.713 回答