科学怪人 发表于 2013-1-4 01:24:46

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

<div id="cnblogs_post_body">看看我们SSIS的流程图
http://pic002.cnblogs.com/images/2012/99430/2012081819250876.jpg

大概的流程是这样的:
先用执行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

http://pic002.cnblogs.com/images/2012/99430/2012081819025842.jpg

用浏览器打开,这些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>
页: [1]
查看完整版本: SSIS 批量导入远程多级别的XML数据源。