[英]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.