簡體   English   中英

如何基於行數生成多個xml文件

[英]How to generate multiple xml files based on rowcount

我能夠使用下面的代碼成功地為一百萬條記錄生成一個大型xml文件。

cmd.CommandText = "SELECT PARTNER_NO FROM T1 WHERE YEAR LIKE '%2011-2012%'";  
XmlWriter myWriter = XmlWriter.Create("C:/Test/BookInfo.xml")  
myWriter.WriteStartDocument(true); 
using(OracleDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
  {  
    reader.FetchSize = reader.RowSize * 5000;  
    myWriter.WriteStartElement("master_table");
    while(reader.Read())
      {  
         myWriter.WriteStartElement("partner");  
         myWriter.WriteElementString("partner_no", reader[0].ToString());  
         myWriter.WriteElementString("id","0008");  
         myWriter.WriteEndElement();  
      }  
 }  

 myWriter.WriteEndDocument();  
 myWriter.Flush();  
 myWriter.Close();  
 cmd.Dispose()  

這是我的xml的樣子: 在此處輸入圖片說明

我現在有一個新要求,即根據行數生成多個10,000條記錄的xml文件。 關於這個有什么建議嗎? 我應該如何進行呢? 這需要在C#上完成

您可以在單個SQL調用中完成此操作:

SQL> SELECT XMLSERIALIZE(CONTENT xmlelement("MASTER_TABLE",
  2                                  xmlagg(xmlelement("PARTNER",
  3                                                    XMLELEMENT("PARTNER_NO",
  4                                                               partner_no),
  5                                                    XMLELEMENT("ID", '0008')
  6                                                    )
  7                                        ))
  8                       INDENT) xmltxt
  9    FROM t1
 10   GROUP BY CEIL(ROWNUM/2)-- replace 2 by 10000
 11  ;

XMLTXT
-------------------------------------------------------------------------------
<MASTER_TABLE>
  <PARTNER>
    <PARTNER_NO>00001</PARTNER_NO>
    <ID>0008</ID>
  </PARTNER>
  <PARTNER>
    <PARTNER_NO>00034</PARTNER_NO>
    <ID>0008</ID>
  </PARTNER>
</MASTER_TABLE>
<MASTER_TABLE>
  <PARTNER>
    <PARTNER_NO>00046</PARTNER_NO>
    <ID>0008</ID>
  </PARTNER>
  <PARTNER>
    <PARTNER_NO>00052</PARTNER_NO>
    <ID>0008</ID>
  </PARTNER>
</MASTER_TABLE>

進一步閱讀:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM