六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 204|回复: 0

SSIS 批量导入远程多级别的XML数据源。

[复制链接]

升级  4%

16

主题

16

主题

16

主题

秀才

Rank: 2

积分
56
 楼主| 发表于 2013-1-4 01:24:46 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">看看我们SSIS的流程图


大概的流程是这样的:
先用执行SQL 任务,返回XML数据源的ResultSet, 再用Foreach容器,遍历每个XML数据源,在数据流任务里实行,合并连接和排序等处理,最终插入到database。

详细步骤
首先用储存过程生成远XML数据源的链接, 例:
http://www.abc.com/xml.php?p_checkin=18-Aug-12&p_checkout=18-Sep-12&p_hotel=BJJD
http://www.abc.com/xml.php?p_checkin=18-Aug-12&p_checkout=18-Sep-12&p_hotel=BDJD
http://www.abc.com/xml.php?p_checkin=18-Aug-12&p_checkout=18-Sep-12&p_hotel=SZXSW
....

例如看下图的 Hotel_Rate



用浏览器打开,这些XML的返回结果一般是这样的, 多级的。
<div class="cnblogs_code"><?xml version="1.0" encoding="UTF-8"?><QRATE>  <XML_RESULT>    <CONTRACTS>      <CONTRACT>HC10000068</CONTRACT>      <VER>26</VER>      <HOTEL>BJJD</HOTEL>      <HOTELNAME>北京酒店</HOTELNAME>      <CUR>RMB</CUR>      <PRODUCT>        <PROD>15</PROD>        <NATION>ALL</NATION>        <NATIONNAME>全部国籍</NATIONNAME>        <MIN>1</MIN>        <MAX>99</MAX>        <ADVANCE>0</ADVANCE>        <TICKET>0</TICKET>        <CANCEL>1</CANCEL>        <CUTOFF>4</CUTOFF>        <ROOM>          <CAT>D3</CAT>          <TYPE>D</TYPE>          <SERV>10</SERV>          <BF>2</BF>          <DEADLINE>18-08-12</DEADLINE>          <STAY>            <STAYDATE>18-08-12</STAYDATE>            <PRICE>650</PRICE>            <ALLOT>5</ALLOT>            <IS_ALLOT>N</IS_ALLOT>          </STAY>        </ROOM>        <ROOM>          <CAT>D3</CAT>          <TYPE>S</TYPE>          <SERV>10</SERV>          <BF>1</BF>          <DEADLINE>18-08-12</DEADLINE>          <STAY>            <STAYDATE>18-08-12</STAYDATE>            <PRICE>650</PRICE>            <ALLOT>5</ALLOT>            <IS_ALLOT>N</IS_ALLOT>          </STAY>        </ROOM>        <ROOM>          <CAT>D3</CAT>          <TYPE>T</TYPE>          <SERV>10</SERV>          <BF>2</BF>          <DEADLINE>18-08-12</DEADLINE>          <STAY>            <STAYDATE>18-08-12</STAYDATE>            <PRICE>650</PRICE>            <ALLOT>5</ALLOT>            <IS_ALLOT>N</IS_ALLOT>          </STAY>        </ROOM>      </PRODUCT>    </CONTRACTS>    <RETURN_CODE>0</RETURN_CODE>    <ERROR_MESSAGE/>  </XML_RESULT></QRATE>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表