[英]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.