2015-01-08 133 views
0

你好,先謝謝你閱讀我的問題。SSIS更新Oracle DB

我在SSIS中工作並試圖在Oracle SQL開發人員中查看視圖並更新表中的任何匹配行。通過四處搜索,我發現SSIS在更新Oracle數據庫時遇到了一些問題,您可以通過OLE DB Command來完成。所以我所做的是添加了一個OLE DB Source來引入我在Oracle SQL Developer中創建的View。該源與目標表具有完全相同的列。然後我將它連接到OLE DB命令。我選擇了合適的連接管理器,並且必須在「輸入和輸出」選項卡中添加外部列以匹配目標表所具有的內容。這使我可以選擇所有的列映射。但是,我遇到的問題似乎與我在「組件屬性」選項卡的「自定義屬性」部分中鍵入的SQLCommand相同。在這方面有經驗的人可以幫助我完成這個設置嗎?下面是我的SqlCommand(目前,它給了我一個錯誤「ORA-01008:未綁定所有的變量。」當我嘗試執行):

UPDATE DB.PERMDB 
SET 
DB.PERMDB.NET_TIME = :NET_TIME, 
DB.PERMDB.PROC_ZONENAME = :PROC_ZONENAME, 
DB.PERMDB.NET_TIME2 = :NET_TIME2, 
DB.PERMDB.PROC_ZONENAME = :PROC_ZONENAME2, 
DB.PERMDB.LAST_DISCOVERY = :LAST_DISCOVERY1, 
DB.PERMDB.PULSEDATE = :PULSEDATE1 
WHERE 
DB.PERMDB.COMBREL = :COMBREL1 
+0

像你的數據流中的'NET_TIME'列嗎? – billinkc

+0

是的......它是我的OLE DB Source中的一個導入列,是否應該在其前面包含視圖名稱?防爆。 DB.VIEW.NET_TIME? – QuestionsGalore

+0

您是否正在'ORA-00933:SQL命令未正確結束?或者是來自其他層的錯誤?該語句看起來不錯(除了將'NET_TIME'設置爲自身,這不會出錯,但可能不是您想要的)。 –

回答

0

我結束了使用腳本任務運行更新查詢,它的工作就像一個魅力。