在SSIS中的执行sql任务中传递参数

时间:2016-01-06 06:38:41

标签: sql ssis

我有一个接受文件名作为参数的SP。

此SP我想通过SSIS中的执行SQL任务(使用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

我按照以下步骤操作: -

  1. 在值中声明带有完整文件路径的变量。 (变量名称:文件名)

  2. 从执行SQL TASK EXEC [Xml_FULL_insert]调用SP?

  3. PARAMETER传递:

  4. 变量名称:文件名 方向:输入 Dtattype VARCHAR 参数名称:0 长度:50

    只要文件名不同于变量值中指定的值,包就会失败。

    虽然文件结构相同。

    我的变量有值(D:\ SSIS_Packages \ AutoGrade.xml)文件名为ACES_2015.10_AutoGrade.xml的完整路径 并且在同一文件夹中,新文件显示为mynewfile.xml。尽管参数映射

    ,但包失败了

    我需要在SP中做一些更改吗?如果可能,请建议。

1 个答案:

答案 0 :(得分:0)

将参数名称从参数0更改为ssis包示例中的实际变量名称,在您的情况下应该是这样 varible name:filename
所以在你的参数映射中将它从parameter0更改为@filename。

相关问题