2016-01-06 55 views
0

我有一个接受文件名作为参数的SP。在SSIS执行sql任务中传递参数

该SP,我想通过调用执行SQL任务在SSIS(使用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 '''[email protected]+''', SINGLE_BLOB) AS  
x;' 

EXEC (@Query) 


COMMIT TRANSACTION 

END TRY 

END 

我也跟着下面的步骤: -

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

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

  3. 参数传递:

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

每当文件名比的值指定的不同变量,包失败。

尽管文件结构相同。

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

我需要做一些SP的变化吗?请尽可能提出建议。

+0

U将需要使用将值传递给存储过程参数的用户变量。检查此链接https://www.simple-talk.com/sql/ssis/working-with-variables-in-sql-server-integration-services/ –

+0

@mhasan:在我的sql语句我已经通过了类似 EXEC dbo.Xml_FULL_insert? 在参数映射 变量名:文件名 方向:输入 Dtattype VARCHAR 参数名称:0 长度:50 在可变 路径:d:\ SSIS_Packages \ * XML仍然得到错误等。 “ResultSet”属性设置不正确,参数设置不正确。请帮助 – akhrot

+0

任何人都可以帮助我。 – akhrot

回答

0

变化从parameter0实际变量名在你的情况下,SSIS包实例参数的名称应该是这个 varible名:文件名
所以在参数映射它的变化从parameter0到@FileName。