我是 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 转换是我苦苦挣扎的地方。
谢谢