2016-08-11 176 views
0

背景:我真的很新。 Informatica的開發人員的PowerCenter快遞版本:9.6.1的HotFix 2informatica在sql轉換中執行sql

我想執行一個T-SQL語句中的一個步驟一個工作流程:

truncate table dbo.stage_customer 

我試圖創建一個映射,添加一個SQL轉換在上面。在sql查詢窗口中輸入上面的查詢。我將映射添加到剛開始,映射和結束的工作流程中。當我驗證流程,我得到這個錯誤:

The group [Input] in transformation xxx must have at least one port 

我不知道,因爲這需要哪些端口(TRUNCATE語句)基本上不需要輸入或輸出。

+0

簡而言之:你做錯了。 Informatica不是「運行sql語句的工具」。這是一個ETL工具,可用於創建數據流。爲此,它需要源和端口和鏈接。它也可以執行一些額外的陳述 - 但這並不意味着你可以拋棄所有其他的東西。 – Maciejg

+0

不,我沒有使用它只是運行一個sql語句,它是工作流程中的一個步驟,我將需要截斷一個表,填充該表等。 – thotwielder

+0

在這種情況下,只需使用會話目標屬性或組合的前/後SQL語句,以最適合您的爲準。 – Maciejg

回答

0

如果您想在加載之前截斷目標表,爲什麼不使用會話屬性中的內置選項?

轉到工作流程管理器 - >打開會話級>映射選項卡 - >點擊左側列出副作用目標表>選擇屬性「截斷表選項」剛剛啓用

回答你的問題,我覺得你有將至少一個輸入和輸出端口連接到SQL轉換(因爲它不是未連接)。只需創建虛擬端口,然後再試一次

嘗試本文 - click here

1

使用您的查詢「截斷表dbo.stage_customer」預SQL命令

+0

我找不到pre-sql命令,它在映射還是工作流程中?我試圖看着兩個,但沒有看到任何。我用快遞版本btw – thotwielder

+0

ok,發現源對象的屬性(Read view)。這可能會起作用。 – thotwielder

1

由於Aswin建議使用內置的選項,在會話屬性。

但是在生產環境中,用戶可能沒有截斷數據庫中表的表訪問權限。在這種情況下,如果檢查截斷目標表選項,informatica工作流將失敗。最好有一個存儲過程截斷目標表並在informatica映射中使用該存儲過程,以避免在用戶沒有對數據庫進行截斷訪問的情況下發生工作流失敗。

+0

謝謝你好。 – thotwielder