2016-01-27 30 views
0

我有一個生物度量設備表,只要員工敲打手指並使用SQL Server 2014標準版,就會捕獲這些數據。SQL Server最好將表數據添加到Oracle數據庫表中

但是,我們的傳統設備正在導出日誌文件,我們使用vb引擎推送到Oracle表並用於生成出勤詳細信息。

我設法從SQL Server中導出數據並構建了第一組記錄。我想安排一個帶有SQL Server的JOB,條件是Oracle表只能接收那些尚未從SQL Server表中插入的行。

我檢查了附加的可能性,當作業執行時轉儲整個SQL Server表數據,從而複製Oracle目標表中的行,迫使我放棄作業並構建一個刪除Oracle表的新作業並在作業執行時重新創建。我覺得這是一種矯枉過正的行爲...

任何已知的方法可用於追加那些Oracle目標表中不存在的行嗎?不幸的是,SQL Server表沒有用於事務的任何唯一ID列。

請建議提前

+1

如果您沒有唯一的ID,那麼您如何確定數據已經存在?是否有多個欄目一起構成您的目的唯一的關鍵?並且,看看合併聲明... –

+0

你好亞歷克斯,這是什麼我確切的問題也關注。不幸的是,數據庫是由設備軟件設置的,我們不能修改。看起來我必須堅持我創建的工作,刪除表格並定期重新創建表格。謝謝 –

回答

1

感謝我認爲最好的方法是使用SAL服務器複製與Oracle數據庫用戶。 你可以閱讀有關MSDN網站上的這個解決方案: Oracle Subscribers

問候 Giova

+0

Hello Giova,我已經通過鏈接了,看起來Subscriber應該是我們案例中的最佳選擇。非常感謝你。我將嘗試設置一個環境並返回結果 –

+0

@raj嗨Raj,配置不難完成。讓我知道。 – Giova

+0

Hello @Giova,微軟表示,這個特性將會隨着SQL服務器的未來版本而被拋棄,並且在評估完成後,我們決定安排一個工作來刪除並重新創建Oracle數據庫中的SQL表。感謝哥們,我從來不知道訂戶的財產,很高興你指點我一些新的和令人興奮的事情。 –

0

既然你談到考勤數據類似的電子計時牌,你可以只發送數據,其中打卡時間是>最後一次同步時間戳。您需要在某個位置維護該值,並且不會考慮復古積極輸入的記錄。如果除了打卡時間之外還有記錄創建日期,您可以使用創建的日期。此外,如果記錄中存在修改日期,則可以使用合併語句查看Alex Pool建議的內容,以便同時獲得與Oracle同步的新記錄和修改。

相關問題