【发布时间】:2017-03-02 13:16:41
【问题描述】:
我想使用 SqlDeveloper(版本为 4.1.5.21)将多个表导出到一个分号分隔的文件中。
目前我使用
SET SQLFORMAT delimited
spool ..\dir\table1.csv
select * from table1;
spool off;
对于脚本中的每个表,这很好。
问题是生成的文件有一个空白的第一行。是否有可能删除它?我做了一些研究,看起来在 SqlPlus 中处理该问题的函数在 SqlDeveloper 中没有实现。
我也尝试在 SqlPlus 中完成相同的操作,但我什至没有接近 SqlDeveloper 生成的结果。
如果无法使用 spool 删除该空白行,是否有任何 sql 内置函数可以用来操作生成的标志,这样我就不必运行 SqlDeveloper 和 bash 脚本来获取正确的文件?
【问题讨论】:
-
您要寻找的结果(输出)是什么?
-
我在 4.2.0.16.356 中没有看到一个空行(好吧,不是在顶部;我确实在文件底部看到了一个)。不确定这是否是特定于版本的行为——在你展示之前你是否在他的脚本(或会话)中做任何其他事情;还有其他
set命令吗? -
好的,我确实可以在 4.1.15 中复制,所以行为在 4.2.0 中发生了变化(已修复?)(仍然是早期采用者)。我还没有找到使 4.1.15 行为相同的方法。您过去可以使用
set pagesize 0解决此问题,但该版本不接受零。 (顺便说一句,4.2.0 似乎也改变了 spool 的工作方式 - 直接运行您的代码(而不是通过单独的 @)不再是 echos the SQL statements,这很好)。
标签: oracle oracle-sqldeveloper spool