![](/img/trans.png)
[英]Using sqlldr in python subprocess.call() fails, but no information
[英]Insert data into database using sqlldr in coldfusion
我有一個從網站獲取的CSV文件。 我需要使用ColdFusion中的SQLLDR將相同的CSV文件上傳到我的數據庫中。 由於某種原因,我無法將數據插入數據庫。
下面是我的代碼。 使用此代碼,我無法將數據從CSV文件插入數據庫。 它是批處理文件中的工作文件,但不能使用cfexecute運行。 我的意思是,我的屏幕空白。 沒有錯誤,沒有例外,什么都沒有。 在日志中簽入,但那里也沒有任何錯誤。 我唯一看到的是數據沒有插入數據庫。
僅供參考,我們使用的是Linux環境,因此路徑略有不同。
<cfset CTLPATH="/home/mosuser/apps/nodal/ctl">
<cfset LOGPATH="/home/mosuser/apps/nodal/logs">
<cfexecute name="/opt/oracle/product/12.1.0/client_1/bin/sqlldr"
arguments="userid/password@Sid control=#CTLPATH#/mpimReport.ctl
log=#LOGPATH#/#PathfileName#_load.log data=#filelist##PathfileName#.csv
bad=#LOGPATH#/#PathfileName#_error.txt">
</cfexecute>
更新:
如建議的那樣,轉儲錯誤變量qryerr
顯示:
找不到訊息2100; 沒有產品= RDBMS的消息文件,工具= ULMessage 2100未找到; 沒有用於product = RDBMS的消息文件,設施= UL
在<cfexecute>
調用中添加一些參數。
timeout
-按照期望過程的秒數順序 variable
存放sqlldr的STDOUT輸出的variable
的名稱 errorVariable
保留sqlldr的STDERR輸出的變量的名稱 之后,您可以獲取調用的輸出並檢查它是否有任何錯誤消息和其他信息。
添加超時是至關重要的步驟-這將使cfexecute
阻塞狀態,直到程序終止或達到超時為止。 沒有超時,ColdFusion只會啟動該過程,並立即繼續執行當前頁面的其余部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.