2016-01-13 103 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但不工作 –

相關問題