[英]Passing parameter in Execute sql task in SSIS
我有一个SP,它接受文件名作为参数。
我想通过SSIS中的“执行SQL任务”来调用此SP(使用2008)
但是我的问题是每次更改文件名时。 如何处理这种场景。
请帮助我,因为我刚接触SSIS
SP
CREATE PROCEDURE [dbo].[Xml_FULL_insert]
@XMLFileName NVARCHAR(256)
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRY
DECLARE @Query NVARCHAR(max)
IF OBJECT_ID('dbo.tblFile', 'U') IS NOT NULL DROP TABLE dbo.tblFile;
CREATE TABLE dbo.tblFile (xmldata XML)
BEGIN TRANSACTION
SET @Query = 'INSERT INTO tblFile(XMLData) SELECT CONVERT (XML,
BulkColumn,2) FROM OPENROWSET( BULK '''+@XMLFileName+''', SINGLE_BLOB) AS
x;'
EXEC (@Query)
COMMIT TRANSACTION
END TRY
END
我遵循以下步骤:
在值中声明具有完整文件路径的变量。 (变量名称:Filename)
从Execute SQL TASK EXEC [Xml_FULL_insert]调用SP?
参数传递:
变量名:文件名方向:输入Dtattype VARCHAR参数名:0长度:50
只要文件名与变量值中指定的文件名不同,包就会失败。
虽然文件结构是相同的。
我的变量具有值(D:\\ SSIS_Packages \\ AutoGrade.xml)的完整路径,其中文件名为ACES_2015.10_AutoGrade.xml,并且在同一文件夹中,新文件显示为mynewfile.xml。 尽管参数映射,程序包仍失败
我需要对SP进行一些更改吗? 如果可能,请提出建议。
在您的情况下,将参数名称从parameter0更改为ssis软件包示例中的实际变量名称,它应该是以下变量名称:文件名
因此,在您的参数映射中,将其从parameter0更改为@filename。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.