我正在嘗試自動化 SSIS 包,因為它使用的是過去三年的表中的資料。
其中 2 個表名的布局為 TableName_YYYYMM,另一個為 TableName_YYYYjan 或 feb 等。
我將如何設定帶有日期變數的 for 回圈,以便程式包從 3 年前的每個月到當前月份的表中獲取資料?
我是 SSIS 的新手,所以我還沒有找到任何解決方案,因為我不能 100% 確定我將如何實施它。
uj5u.com熱心網友回復:
很難說,至少對我來說,沒有看到你在做什么的細節。當您構建日期時,您也不是因為您只處理年和月,因此使用日期資料型別可能無濟于事。
創建 5 個 SSIS 變數
- 年份 - Int32 - 0
- 月 - Int32 - 0
- YYYYMM - 字串 - 作為運算式求值
(DT_WSTR, 4) @[User::Year] RIGHT("0" (DT_WSTR, 2) @[User::Month], 2) - YYYYMonth - 字串 - 作為運算式求值
(DT_WSTR, 4) @[User::Year] @[User::MonthAbr] - MonthAbr - 字串 - 作為運算式求值
表達
(@[User::Month] == 1) ? "Jan" :
(@[User::Month] == 2) ? "Feb" :
(@[User::Month] == 3) ? "Mar" :
(@[User::Month] == 4) ? "Apr" :
(@[User::Month] == 5) ? "May" :
(@[User::Month] == 6) ? "Jun" :
(@[User::Month] == 7) ? "Jul" :
(@[User::Month] == 8) ? "Aug" :
(@[User::Month] == 9) ? "Sep" :
(@[User::Month] == 10) ? "Oct" :
(@[User::Month] == 11) ? "Nov" :
(@[User::Month] == 12) ? "Dec" : "UNK"
此時,如果我更改Yearor的值Month,這三個變數就會發生變化,從而將我們的問題簡化為“我們如何更改這兩個變數?”
如果我有全年作業的界限,即每年 2000 年到 2021 年 1 月到 12 月,我會使用類似這個包的東西。一組嵌套的 For 回圈容器。外層列舉2000年到2021年,內層列舉1到12年,里面的Sequence Container是我做實際作業的地方。在這種情況下,我只是列印我的用戶變數的值以表明它有效。

For 回圈 - 年
配置變數@[User::Year]

For 回圈 - 月
配置變數@[User::Month]

我的腳本任務是我非常喜歡的(至少是我)
在第一個任務(一個空的序列容器是一個很好的錨點,因為它是一個邏輯結構,不需要配置)和第二個任務之間的序列容器內,并將評估操作設定為運算式和約束。價值就是成功。運算式是@[User::IsValid]

禁用方法
這里的想法是我們將設定SEQC Do Workvia Expression 的 Disable 屬性。從維護的角度來看,我發現這有點令人困惑,因為我們需要使用 IsValid 的逆函式,因為我們只想在它無效時禁用它。
- 右鍵單擊 SEQC 做作業
- 特性
- 運算式
- 選擇禁用 ->
!@[User::IsValid] - 好的
- 好的

我需要創建所有這些變數嗎
是的。你甚至可能想要更多。除非通過觀察計算結果,否則無法除錯任何包含運算式的內容。(DT_WSTR, 4) @[User::Year]我不能在和之間設定一個斷點 RIGHT("0" (DT_WSTR, 2) @[User::Month], 2),看看我是否正在構建一個 2 個字符的月份“數字”。我唯一能做的就是查看變數的值。這意味著,不要在任務或容器運算式中使用任何非單個變數的內容。我確實在上面使用 Disable 違反了它,這就是為什么我也將其記為維護開銷/技術債務。
如果我在測驗時遇到任何奇怪的行為,我可以在奇怪的任務/容器之前立即設定一個斷點并檢查我的變數并追溯為什么它很奇怪。如果我有來自 YYYYMonth 的相同運算式,但全部都附加到 OLE DB 源,那么祝你好運,試圖弄清楚為什么它會提取不正確的資料。
如何使邊界動態化?
添加一對變數
- YearInitial - Int32 - 2000
- YearTerminal - Int32 - 評估為運算式
YEAR(@[System::StartTime])

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534296.html
標籤:日期for循环妹妹
上一篇:將創建的日期序列拆分為單獨的列
下一篇:來自繼承類的變數型別
