SQL开发人员后台处理到txt行

时间:2019-02-04 13:25:04

标签: sql oracle-sqldeveloper

我有一个蝙蝠文件,它调用sql developer并把查询假脱机到文本文件,但是结果全都在一行中,看来它不知道如何识别一行。

例如,如果我在sql Developer中手动运行假脱机脚本,则txt文件看起来像这样完美:

  

“商品”,“数量”,“价格”

     

“ A11”,“ 4”,“ 0.86”

     

“ A12”,“ 3”,“ 0.56”

     

“ A14”,“ 5”,“ 0.3”

但是如果我用bat文件运行它,它就会像这样出现:

  

“商品”,“数量”,“价格”“ A11”,“ 4”,“ 0.86”“ A12”,“ 3”,“ 0.56”“ A14”,“ 5”,“ 0.3”

没有正确的格式,当我将其导入excel文件时,所有数据都在一个单元格中。

我尝试了各种格式,例如SET PAGESIZE, SET TERMOUT ...但是这些都不起作用。在我的另一台设备中,我运行了完全相同的代码,但是我没有这个问题。

bat文件代码:

@echo off

C:

cd C:\sqldeveloper\sqldeveloper\bin

sdcli migration -actions=mkconn,runsql -connDetails=target_oracle:oracle:XXXXX -conn=target_oracle -sql="C:\Desktop\1.sql"

1.sql:

spool "C:\Desktop\test.txt"
@C:\2.sql as script(F5);
spool off

2.sql:

Select /*csv*/ * From (
select * from item
);

我在这里停留了一段时间,如果您有解决方案,请告诉我,谢谢。

1 个答案:

答案 0 :(得分:0)

答案是为作业使用正确的SQL Developer命令行界面。

我们有两个:

SDCLI -这是完整的SQL Developer程序的简写版本-奇特的说法,没有GUI。它可以执行诸如执行数据库导出或调用购物车功能之类的操作。通过“迁移”任务使用它运行SQL语句就像使用火焰喷射器为汽车的挡风玻璃除霜-尽管可能不太有趣。

SQLcl -这是Oracle数据库的命令行交互式界面。它是SQL * Plus的基于Java的版本。在建立连接,运行脚本等方面,它具有与SQL Developer相同的代码-但它只有20MB和200 + MB,并且只需要JRE和JDK。

这两个程序都在sqldeveloper \ bin文件夹-but SQLcl is also a separate, standalone, supported product中。

因此,要执行您想要的操作,您需要更改以下内容:

sdcli migration -actions=mkconn,runsql -connDetails=target_oracle:oracle:XXXXX -conn=target_oracle -sql="C:\Desktop\1.sql"

对此:

sql user / pwd @ server:port / service @c:\ users \ jdsmith \ desktop \ 1.sql

您的1.sql可以是这样:

spool c:\users\jdsmith\desktop\locations-so.csv
Select /*csv*/ * From locations;
spool off
exit

这给了我们

enter image description here

奖金:SQLcl将以更快的速度运行。