我想使用SqlDeveloper(版本为4.1.5.21)将多个表导出为以分号分隔的文件。
目前我使用
SET SQLFORMAT delimited
spool ..\dir\table1.csv
select * from table1;
spool off;
对于脚本中的每个表,这很好。
问题是生成的文件第一行是空白。是否有可能删除它?我已经完成了一些研究,看起来在SqlPlus中没有实现在SqlPlus中处理的功能。
我也尝试在SqlPlus中完成相同的操作,但我甚至没有接近SqlDeveloper生成的结果。
如果使用spool无法摆脱那个空行,是否有任何sql内置函数可以用来操作结果标志,所以我不必运行SqlDeveloper然后运行bash脚本来获取正确的文件?
答案 0 :(得分:0)
如果有人偶然发现这个问题:
正如Alex在评论中指出的那样,这是SqlDeveloper版本4.1.15(可能是早期版本)中的一个错误。要摆脱它,请升级到4.2.0。
如果您和我一样,出于某种原因坚持使用早期版本,您可以使用与SqlDeveloper一起提供的sqlcl来执行您的脚本,而不会出现所描述的问题。
我的.sql脚本如下所示:
SET ECHO OFF
SET FEEDBACK OFF
SET sqlformat delimited ; " "
spool ..\relative\path.csv
select * from table1;
SPOOL OFF;
QUIT;