我正在研究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语句,可以简单地解决这个问题吗?
请指导。
答案 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;