簡體   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