我正在使用Oracle SQL Developer 3.0。试图弄清楚如何将查询结果导出到文本文件(最好是CSV)。右键单击查询结果窗口并没有给予我任何导出选项。
oxosxuxt1#
我使用的版本
2012年5月5日更新
Jeff Smith显示了blogged,我认为这是从SQL Developer获取CSV输出的上级方法。Jeff的方法如下所示:
方法1
将注解/*csv*/添加到SQL查询中,并将查询作为脚本运行(使用F5或工作表工具栏上的第二个执行按钮)
/*csv*/
select /*csv*/ * from emp;
就是这样。您也可以使用spool将其自动保存为CSV文件:
spool
spool "/path/to/file.csv"; select /*csv*/ * from emp; spool off;
只是一定要“运行脚本”或按F5。
方法二运行查询
右键选择unload。更新,Sql Developer 3.0.04版本中unload改为export感谢Janis Peisenieks指出
SQL Developer版本3.0.04的修订屏幕截图
从格式下拉列表中选择CSV
然后按照屏幕上的其他说明进行操作。
bwitn5fc2#
不完全是“导出”,但您可以选择要导出的网格中的行(或Ctrl-A选择所有行),然后使用Ctrl-C进行复制。默认值是制表符分隔的。您可以将其粘贴到Excel或其他编辑器中,并随意操作分隔符。此外,如果使用Ctrl-Shift-C而不是Ctrl-C,则还将复制列标题。
pcrecxhr3#
仅供参考,您可以将/*csv*/替换为其他格式,包括/*xml*/和/*html*/。例如,select /*xml*/ * from emp将返回带有查询结果的xml文档。我在寻找从查询返回xml的简单方法时遇到了这篇文章。
/*xml*/
/*html*/
/*xml*/ * from emp
xmd2e60i4#
告诉你如果有人遇到麻烦,CSV时间戳导出中有一个错误,我只是花了几个小时来解决。我需要导出的一些字段是时间戳类型。即使在当前版本中,它也显示CSV导出选项(3.0.04截至这篇文章)未能把分组符号周围的时间戳。非常令人沮丧,因为空格的时间戳打破了我的进口。我发现的最好的解决方法是在所有时间戳上使用TO_CHAR()编写查询,这会产生正确的输出,尽管需要多做一些工作。我希望这可以节省一些时间,或者让Oracle在下一个版本中保持领先。
ojsjcaue5#
从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;
roqulrg36#
CSV导出不会转义您的数据。请注意以\结尾的字符串,因为结果\"看起来像转义的"而不是\。然后,您将有错误的"编号,并且整行都已损坏。
\
\"
"
6条答案
按热度按时间oxosxuxt1#
我使用的版本
2012年5月5日更新
Jeff Smith显示了blogged,我认为这是从SQL Developer获取CSV输出的上级方法。Jeff的方法如下所示:
方法1
将注解
/*csv*/
添加到SQL查询中,并将查询作为脚本运行(使用F5或工作表工具栏上的第二个执行按钮)就是这样。
您也可以使用
spool
将其自动保存为CSV文件:只是一定要“运行脚本”或按F5。
方法二
运行查询
右键选择unload。
更新,Sql Developer 3.0.04版本中unload改为export感谢Janis Peisenieks指出
SQL Developer版本3.0.04的修订屏幕截图
从格式下拉列表中选择CSV
然后按照屏幕上的其他说明进行操作。
bwitn5fc2#
不完全是“导出”,但您可以选择要导出的网格中的行(或Ctrl-A选择所有行),然后使用Ctrl-C进行复制。
默认值是制表符分隔的。您可以将其粘贴到Excel或其他编辑器中,并随意操作分隔符。
此外,如果使用Ctrl-Shift-C而不是Ctrl-C,则还将复制列标题。
pcrecxhr3#
仅供参考,您可以将
/*csv*/
替换为其他格式,包括/*xml*/
和/*html*/
。例如,select/*xml*/ * from emp
将返回带有查询结果的xml文档。我在寻找从查询返回xml的简单方法时遇到了这篇文章。xmd2e60i4#
告诉你如果有人遇到麻烦,CSV时间戳导出中有一个错误,我只是花了几个小时来解决。我需要导出的一些字段是时间戳类型。即使在当前版本中,它也显示CSV导出选项(3.0.04截至这篇文章)未能把分组符号周围的时间戳。非常令人沮丧,因为空格的时间戳打破了我的进口。我发现的最好的解决方法是在所有时间戳上使用TO_CHAR()编写查询,这会产生正确的输出,尽管需要多做一些工作。我希望这可以节省一些时间,或者让Oracle在下一个版本中保持领先。
ojsjcaue5#
从sql developer导出到本地系统。
roqulrg36#
CSV导出不会转义您的数据。请注意以
\
结尾的字符串,因为结果\"
看起来像转义的"
而不是\
。然后,您将有错误的"
编号,并且整行都已损坏。