2

我是 SQL Server 和 SSIS 的新手,并且有这种情况。我已经在 TSQL 中进行了编码和工作,并且一直试图弄清楚我是否可以在 SSIS 中做到这一点,因为我想使用它提供的一些错误处理。我目前在 SQL 2008 中运行它,但我正在使用 2012 测试 SSIS。这是我的场景。

固定宽度平面文件格式:
标题代码 FILE_TYPE 日期
代码 LAST_NAME FIRST_NAME GENDER
TRAILER 代码日期 RECORD_COUNT

平面文件内容:

H0123ABC07222013
98765史密斯汤姆
94586约翰逊比尔M
T0123072220132

在 TSQL 中,我的步骤是 BULK INSERT 到大型临时表并加载为一列
构建查询字符串:
使用 SUBSTRING 使用 FOR XML 并使用 where 子句作为 Header value 选择值
,使用 SUBSTRING 使用 FOR XML 和使用 where 子句选择值
对于 DETAILS 值

使用 SUBSTRING 选择值,使用 FOR XML 并使用 where 子句作为 TRAILER 值

例如:

选择@sql1 =(选择
    ( SELECT SUBSTRING(temp,1,2) 作为标题,
             SUBSTRING(temp,3,3) 作为代码,
             SUBSTRING(temp,6,3) 作为 File_Type,
             SUBSTRING(temp,9,8) 作为 Cycle_Date
        来自测试负载
       WHERE SUBSTRING(temp,1,2) = 'H0'
    为了
    XML 路径('标题'),
    类型
    ), ...

该查询的结果被插入到 XML 数据类型列中

我在 SSIS 中找到了有关如何执行此操作的信息,该信息写入结构化以匹配数据的表,但尚未找到如何将数据转换为 XML 并保持文件顺序完整。XML 转换是我苦苦挣扎的地方。

谢谢

4

0 回答 0