繁体   English   中英

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

[英]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

我遵循以下步骤:

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

  2. 从Execute 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进行一些更改吗? 如果可能,请提出建议。

在您的情况下,将参数名称从parameter0更改为ssis软件包示例中的实际变量名称,它应该是以下变量名称:文件名
因此,在您的参数映射中,将其从parameter0更改为@filename。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM