2016-01-13 163 views
0

我有一个.bat文件,其中我使用sqlldr从csv插入数据到oracle,但是当我双击.bat文件时,什么也没有发生。 但是,当我在cmd中复制它并运行它执行数据。 我不知道发生了什么路径错误或任何事情。命令是从cmd运行,但不是批处理文件

批处理文件

P:\Users\ashique.sheikh\VMI>sqlldr upi/upi DATA=P:\Users\ashique.sheikh\VMI\test.csv CONTROL=Insert.ctl LOG=Insert.log. 

CTL文件

OPTIONs(SKIP=1) 
LOAD DATA 
INFILE "P:\Users\ashique.sheikh\VMI\test.csv" 
INSERT into table DETAIL 
REPLACE 
fields terminated by ',' 
(ID,NAME,ADDRESS,CITY,MOBILE) 
+0

通过双击,您启动'c:\ Windows \ system32'的homedir的'cmd'窗口,因此它可能在其中找不到'Insert.ctl'。 – Stephan

+0

所以,我可以做什么,我可以把Insert.ctl那里。当我打开CMD它有地址P:\ Users \ ashique.sheikh –

+0

要么提供完整的路径(见彼得的答案)或花'CD/D“ P:\ Users \ ashique.sheikh \ VMI“'到你的批处理文件。 – Stephan

回答

1

尝试在bat文件使用此行:当您运行cmd.exe的

start "" cmd.exe /c sqlldr upi/upi DATA=P:\Users\ashique.sheikh\VMI\test.csv CONTROL=Insert.ctl LOG=Insert.log 

一些WinodwsXP有一个问题,因为不同的设置变量,并在运行.bat文件另一个。它是防病毒沙箱或其他类似的东西。

1

尝试添加路径CTL参数太多。我害怕windows搜索insert.ctl的路径,它没有找到它。

+0

我尝试使用此cd/d“P:\ Users \ ashique.sheikh \ VMI”sqlldr upi/upi DATA = P:\ Users \ ashique.sheikh \ VMI \ test。 csv CONTROL = P:\ Users \ ashique.sheikh \ VMI \ Insert.ctl LOG = Insert.log,并在P:\ Users \ ashique.sheikh位置放置一个Insert.ctl但不工作 –

相关问题