繁体   English   中英

SSIS将具有不同类型列的表导出到平面文件中

[英]SSIS Export table with different types of columns into flat file

我正在研究一个SSIS包。

我有一张桌子,如下所示:

表名称:Employee_table

EmployeID     EmployeeName     EmployeeDataXML
==============================================
1             Mark            <Age>32</Age><Role>Manager</Role>
2             Albert          <Age>31</Age><Role>Staff</Role>
==============================================

该表必须导出到名称为Employeedata.dat的平面文件中

文件中的内容应如下所示:

<EmployeeID>1</EmployeeID><EmployeeName>Mark</EmplyeeName><EmployeeDataXML><Age>32</Age><Role>Manager</Role></EmployeeDataXML>
<EmployeeID>2</EmployeeID><EmployeeName>Albert</EmplyeeName><EmployeeDataXML><Age>31</Age><Role>Staff</Role></EmployeeDataXML>

基本上,employeeid和employeename列不是xml格式,但是在导出时仍然应该将它们也包装在xml中。

有人可以指导我这是最好的方法吗? 我需要在这里使用任何转换吗? 是否有任何可用的控制/任务? 可以编写一条可以简单解决此问题的SQL Select语句吗?

请指导。

是的,使用FOR XML PATH进行的简单SELECT应该可以解决此问题:

DECLARE @TestData TABLE
(
  EmployeID INT NOT NULL,
  EmployeeName NVARCHAR(50) NOT NULL,
  EmployeeDataXML XML
);

INSERT INTO @TestData (EmployeID, EmployeeName, EmployeeDataXML)
  VALUES (1, N'Mark', N'<Age>32</Age><Role>Manager</Role>');
INSERT INTO @TestData (EmployeID, EmployeeName, EmployeeDataXML)
  VALUES (2, N'Albert', N'<Age>31</Age><Role>Staff</Role>');


SELECT EmployeID, EmployeeName, EmployeeDataXML
FROM   @TestData
FOR XML PATH(N'Employee');

产生以下内容:

<Employee>
  <EmployeID>1</EmployeID>
  <EmployeeName>Mark</EmployeeName>
  <EmployeeDataXML>
    <Age>32</Age>
    <Role>Manager</Role>
  </EmployeeDataXML>
</Employee>
<Employee>
  <EmployeID>2</EmployeID>
  <EmployeeName>Albert</EmployeeName>
  <EmployeeDataXML>
    <Age>31</Age>
    <Role>Staff</Role>
  </EmployeeDataXML>
</Employee>

您没有在示例输出中显示父<Employee>元素,但是我认为如果没有一些元素将字段元素包装到“行”中,该文件将不可用。

暂无
暂无

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

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