首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SSIS在SQL中插入XML文件

通过SSIS在SQL中插入XML文件
EN

Stack Overflow用户
提问于 2012-10-10 10:21:51
回答 1查看 5.4K关注 0票数 0

我做了这个手术

代码语言:javascript
复制
ALTER proc [dbo].[adenti] 
(
   @entra nvarchar(max)
)
as 
DECLARE @sql varchar(4000); 
SET @sql = 'INSERT INTO provaxml (arquivo) SELECT CAST(BulkColumn AS XML) FROM OPENROWSET(BULK ''' + @entra + ''', SINGLE_BLOB) as arquivo'; 
EXEC( @sql );

上面的代码起作用。

是否可以使用Integration将路径中的所有XML文件插入SQL表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-10 18:04:47

你可以做两种不同的方法。

第一个是user569711概述的,使用一个ForEach枚举器并调用您现有的存储过程。这样做的好处是,您的行为应该与您当前所经历的完全相同,并且您的测试应该只需要专注于确保SSIS包获得正确的文件。

第二种方法是使用SSIS的开箱即用功能来处理导入BLOB类型。

控制流

您需要根据您的方法定义1到2个变量。这两种类型都是字符串数据类型。我创建了SourceFolderCurrentFileName。前者定义了文件的来源,并在这两种方法中使用。后者在ForEach循环容器中用于捕获“当前”文件。

数据流

要使数据流工作,您需要获得添加到管道中的文件名的完全限定列表。最简单的方法是使用脚本转换,充当源代码,并将其添加到满足条件的所有文件(*.xml)中。

前路集装箱

按此配置

集合

可变映射

执行SQL任务

配置

脚本源

此任务将将可用文件添加到数据流中。次要注意,这将遍历子文件夹,这与我们如何配置Foreach不同。这是对第三个参数(或省略)的简单更改,使其仅限于顶层。

标识您的变量,以便它在脚本任务中可用

添加适当的输出列。你的长度可能因环境而异。

剧本在这里

代码语言:javascript
复制
using System;
using System.Data;
using System.IO;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{

    public override void CreateNewOutputRows()
    {
        string fileMask = string.Empty;
        string sourceFolder = string.Empty;

        fileMask = @"*.xml";
        sourceFolder = this.Variables.SourceFolder;

        foreach (string fileName in Directory.GetFiles(sourceFolder, fileMask, SearchOption.AllDirectories))
        {
            Output0Buffer.AddRow();
            Output0Buffer.FileName = fileName;
            Output0Buffer.SourceName = "Dataflow";
        }
    }
}

导入列变换

像这样配置

请注意这里的ID

用名称将ID绑定回列

OLE DB目的地

配置。不支持快速加载选项。

参考文献

关于使用导入列变换的很好的文章

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12817099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档