我正在使用 Oracle SQL Developer 3.0。试图弄清楚如何将查询结果导出到文本文件(最好是 CSV)。右键单击查询结果窗口不会给我任何导出选项。
我正在使用的版本
https://i.stack.imgur.com/yZ3aQ.jpg
2012 年 5 月 5 日更新
Jeff Smith 显示 blogged,我认为这是从 SQL Developer 获取 CSV 输出的最佳方法。 Jeff 的方法如下图方法一所示:
方法一
将注释 /*csv*/
添加到您的 SQL 查询并将查询作为脚本运行(使用 F5 或工作表工具栏上的第二个执行按钮)
select /*csv*/ *
from emp;
https://i.stack.imgur.com/Iqpqw.jpg
而已。
您还可以使用 spool
将其自动保存为 CSV 文件:
spool "/path/to/file.csv";
select /*csv*/ *
from emp;
spool off;
只需确保“以脚本方式运行”或按 F5。
方法二
运行查询
https://i.stack.imgur.com/tLYlY.jpg
右键单击并选择卸载。
更新。在 Sql Developer 版本 3.0.04 中,卸载已更改为导出 感谢 Janis Peisenieks 指出这一点
https://i.stack.imgur.com/CQ4Qb.jpg
SQL Developer 版本 3.0.04 的修订屏幕截图
https://i.stack.imgur.com/BfgNB.jpg
从格式下拉列表中选择 CSV
https://i.stack.imgur.com/tsWqP.jpg
并按照屏幕上的其余说明进行操作。
不完全是“导出”,但您可以选择要导出的网格中的行(或 Ctrl-A 以选择所有行),然后使用 Ctrl-C 进行复制。
默认为制表符分隔。您可以将其粘贴到 Excel 或其他编辑器中,然后随意操作分隔符。
此外,如果您使用 Ctrl-Shift-C 而不是 Ctrl-C,您还将复制列标题。
仅供参考,您也可以将 /*csv*/
替换为其他格式,包括 /*xml*/
和 /*html*/
。例如,select /*xml*/ * from emp
将返回一个带有查询结果的 xml 文档。我在寻找一种从查询中返回 xml 的简单方法时遇到了这篇文章。
SPOOL 'file01.csv' REPLACE; SELECT * FROM foo WHERE categ in ('A', 'B'); SPOOL off;
仅供遇到问题的任何人参考,CSV 时间戳导出中存在一个错误,我只是花了几个小时解决这个问题。我需要导出的一些字段是时间戳类型。即使在当前版本(截至本文发布时为 3.0.04)中,CSV 导出选项似乎也无法将分组符号放在时间戳周围。非常令人沮丧,因为时间戳中的空格破坏了我的导入。我发现的最佳解决方法是在我的所有时间戳上使用 TO_CHAR() 编写查询,这会产生正确的输出,尽管需要做更多的工作。我希望这可以节省一些时间,或者让 Oracle 在他们的下一个版本中参与进来。
MDSYS.SDO_GEOMETRY(2001,8307,MDSYS.SDO_POINT_TYPE(-122.39096,37.79251,NULL),NULL,NULL)
,而不用引号括起来。而且我正在使用动态 SQL,所以我不能 TO_CHAR() 这些列。有什么建议么?
从 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;
CSV 导出不会转义您的数据。注意以 \
结尾的字符串,因为生成的 \"
看起来像转义的 "
而不是 \
。然后你有错误的 "
数量并且你的整行都被破坏了。
"foo\"
是一个完全有效的带引号的字符串。
/*CSV*/
对我不起作用,但小写/*csv*/
可以。谢谢!