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