[英]error in ssis execute sql task
我已經在foreach循環容器內放置了一個execute sql任務,在這里我想執行從sis用戶定義的變量獲取的存儲過程名稱,但是我沒有找到從變量執行存儲過程名稱的正確語法。 我想傳遞輸入參數來執行存儲過程,這也是另一個dts變量,請提供任何幫助以找出正確的語法
假設您有兩個變量StoredProcedureName
和ParameterValue
創建一個名為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.