簡體   English   中英

SSIS中的錯誤執行SQL任務

[英]error in ssis execute sql task

我已經在foreach循環容器內放置了一個execute sql任務,在這里我想執行從sis用戶定義的變量獲取的存儲過程名稱,但是我沒有找到從變量執行存儲過程名稱的正確語法。 我想傳遞輸入參數來執行存儲過程,這也是另一個dts變量,請提供任何幫助以找出正確的語法

在此處輸入圖片說明

假設您有兩個變量StoredProcedureNameParameterValue

創建一個名為QueryString的新變量。 F4打開屬性窗口,然后在具有變量列表的窗口中單擊變量名稱。 將您的QueryString變量的EvaluateAsExpression屬性設置為True。

然后單擊“ Expression的橢圓以打開“ 表達式生成器” 輸入以下表達式

"Execute " + @[User::StoredProcedureName] + " @ParameterName = '" + @[User::ParameterValue]+ "'"

單擊評估表達 ,您應該看到

Execute MyProcedure @ParameterName = 'SomeValue'

將該變量分配給SourceVariable ,以執行Execute SQL Task

可以按照上面提供的方法構建字符串,但是我不會以它開頭。 首先,它假設所有內容都是字符串,其次它可能使您容易進行sql注入(非常不可能,我同意)

要實際使用ADO.NET的本機參數映射,您需要使用@PlaceHolder進行變量替換。 根據您的屏幕截圖,@ [User :: StoredProcedureName]的值將需要具有EXECUTE schema.ProcName @ParameterName的格式EXECUTE schema.ProcName @ParameterName否則,您將需要從@Raj More的示例中折疊表達式,而無需使用=...

在此處輸入圖片說明

映射如下所示。 確保選擇正確的數據類型和參數名稱以與您的查詢相關聯。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM