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

来源:转载

看看我们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的返回结果一般是这样的, 多级的。

<?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>


分享给朋友:
您可能感兴趣的文章:
随机阅读: