2012-07-24 75 views
0

我正在使用SSIS將FoxPro表導入SQL Server 2008。源數據是我無法控制的專有數據庫。讓我打電話給我導入客戶的表。SSIS數據源中的源表結構更改

有時,對於客戶的結構是這樣的:

ID(INT)

NAME(CHAR(30))

ADDRESS(CHAR(30))

CITY(char(20))

STATE(炭(2))

ZIP(CHAR(10))

CCNUM(CHAR(16))

其他時候,它看起來像這樣:

ID(INT)

NAME(CHAR(30))

ADDRESS(CHAR(30))

CITY(CHAR(20))

STATE(炭(2))

ZIP(CHAR(10))

CCPTR(char(100))

這個專有的數據庫基本上有兩個不同版本的數據庫。舊版本的字段名爲CCNUM(信用卡號碼),它是一個基本的16字符字段。新版本用一個名爲CCPTR的字段替換了該字段,該字段是代表卡指針(實際信用卡號的加密值)的100個字符的字段。

這裏的問題是,每次我有2個數據集具有這些不同的表結構之間來回切換,SSIS吹了,我得去和手動刷新的元數據。

我的問題是,反正是有,我可以有SSIS動態查找在運行時,這些領域之一,並在此基礎上一個是存在的,正確的數據加載到SQL正確的表結構?

請原諒我,如果這已被問及之前。我對SSIS還是比較新的,我試着尋找這個答案,但無濟於事。

感謝,

馬克

回答

0

簡短的答案是否定的。 SSIS預計其源和目標組件的元數據不會發生重大變化。有很多方法可以用.NET編程式地影響這個,但是這種想法沒有實現。

這個問題的設計良好的解決方案是創建2個獨立的數據流,將數據複製到共享臨時表中。使用此臨時表作爲源來轉換您的數據並將其推送到其最終的數據結構。

0

如果您基於長度(100)生成包並在(16)上調整它,則應該只會發出警告。你有錯誤嗎?