簡體   English   中英

在Coldfusion中使用sqlldr將數據插入數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM