SSIS导出表将不同类型的列导入平面文件

时间:2015-10-11 21:33:19

标签: sql-server xml ssis export flat

我正在研究SSIS包。

我有一张表格如下:

表名:Employee_table

<?php
    include 'config.php';

    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 


    $size = $_POST['size'];
    $budget = $_POST['budget']; 
    $mob_no = $_POST['phone_no'];
    $json = array('mobile_no'=>$mob_no,'size'=>$size,'budget'=>$budget);
    $myCurl = "curl -i **.**.**.***:****/1/user/web -d '". json_encode($json)."' -H 'Content-Type: application/json'";
    //echo $myCurl;
    $reply = shell_exec($myCurl);
    $arr=var_dump(json_decode($reply, true));
     echo($arr); // ****This JSON object I want to get on Index.php page and extract values

    //foreach ($arr as &$value){
    //${"mob_no".$value}= $arr[0][mobile_no];
    //${"size".$value}= $arr[1][size];



    }

    ?>

此表必须导出到名为Employeedata.dat

的平面文件中

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

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

基本上,employeeid和employeename列不是xml格式,但是当导出发生时,它们也应该用xml包装。

有人可以指导我哪种方式最好吗? 我需要在这里使用任何转换吗? 是否有任何控制/任务可供使用? 可以写一个SQL Select语句,可以简单地解决这个问题吗?

请指导。

1 个答案:

答案 0 :(得分:4)

是的,使用SELECT的简单FOR XML PATH应该注意这一点:

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>元素,但我不认为该文件可用,而没有一些元素将字段元素包装到&#34;行&#34;