我有一个接受文件名作为参数的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
我按照以下步骤操作: -
在值中声明带有完整文件路径的变量。 (变量名称:文件名)
从执行SQL TASK EXEC [Xml_FULL_insert]调用SP?
PARAMETER传递:
变量名称:文件名 方向:输入 Dtattype VARCHAR 参数名称:0 长度:50
只要文件名不同于变量值中指定的值,包就会失败。
虽然文件结构相同。
我的变量有值(D:\ SSIS_Packages \ AutoGrade.xml)文件名为ACES_2015.10_AutoGrade.xml的完整路径 并且在同一文件夹中,新文件显示为mynewfile.xml。尽管参数映射
,但包失败了我需要在SP中做一些更改吗?如果可能,请建议。
答案 0 :(得分:0)
将参数名称从参数0更改为ssis包示例中的实际变量名称,在您的情况下应该是这样
varible name:filename
所以在你的参数映射中将它从parameter0更改为@filename。