如何在Oracle SQL Developer中将查询结果导出到csv?

Ken*_*Liu 235 csv oracle export oracle-sqldeveloper

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

Ian*_*ter 368

我正在使用的版本

替代文字

2012年5月5日更新

Jeff Smith博客上发表了一篇文章,我认为这是从SQL Developer获取CSV输出的优秀方法.杰夫的方法如下面的方法1所示:

方法1

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

在此输入图像描述

而已.

方法2

运行查询

替代文字

右键单击并选择卸载.

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

替代文字

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

在此输入图像描述

从格式下拉列表中选择CSV

替代文字

并按照屏幕上的其他说明进行操作.

  • +1."卸载"一词对我来说似乎是非直观的."加载"一些数据意味着将其插入数据库; 因此"卸载"应该意味着数据被删除...... (25认同)
  • 在3.0.04版中,此选项已重命名为"导出". (8认同)
  • 另请注意,方法2可能会遇到一个错误(仍然存在于我的3.0.04版本中),它只会挂起大行数(大约3K行).我正在使用这个旧学校的SQLPLUS,因为我没有先看到上面的方法1,但是有些人可能会这样:{code} SET UNDERLINE OFF SET COLSEP','SET LINES 20000 PAGES 20000 SET FEEDBACK off --optional SET HEADING off假脱机C:\ Export\EMP.csv - 现在查询SELECT*FROM EMP; 阀芯关闭 (3认同)
  • 大.ps大写`/*CSV*/`对我来说不起作用,但小写`/*csv*/`做了.谢谢! (2认同)
  • @topr使用方法1,然后选择全部,复制并粘贴到文本编辑器中并另存为csv。您甚至可以直接粘贴到 Excel 中,但我对此不确定。 (2认同)
  • @half-pass 我无法访问 4.02。在 4.03 中,它的工作方式如方法 2 中所述。 /*csv*/ 方法不会创建文件。您从脚本输出选项卡复制结果并粘贴到目标文件\app (2认同)

BQ.*_*BQ. 43

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

默认为制表符分隔.您可以将其粘贴到Excel或其他编辑器中,并操纵您喜欢的分隔符.

另外,如果你使用Ctrl- Shift- C而不是Ctrl- C,你也复制列标题.

  • 真棒,我正在专门研究如何复制标题.谢谢! (5认同)
  • 唯一的问题是,如果你有很多行,这意味着它将不得不再次查询整个数据集.如果它是一个长时间运行的查询,这意味着你等了很多第一页,然后按ctrl + A后等待很多页面.换句话说,是一个很好的解决方案,但只能在大多数情况下工作,并且对于相对更快或更小的查询. (3认同)
  • 我尝试在 43K 行数据上执行此操作,并且它永远运行 - 以更快的方式导出选项。如果您只有几行数据,这很棒。 (2认同)

Yve*_*hon 27

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

  • /*insert*/特别有用. (4认同)

Boe*_*Boy 6

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