因为有巨大的表格,如果要一次性导出所有行数据,可能会出现System.OutOfMemoryException错误。所以我尝试将其分为N行进行导出。但是,如果在查询中使用分页语法,WriteXml会抛出异常。
我已经在LINQPad中测试了两种查询方法,并且它们都可以正常工作。
System.InvalidOperationException: 无法序列化DataTable。 DataTable名称未设置。
// The first query causes exception
string oraQueryGetTableData = "SELECT * FROM (SELECT t0.* FROM MY_TABLE t0) WHERE ROWNUM <= 100";
// The second query runs without any error
//oraQueryGetTableData = "SELECT * FROM MY_TABLE";
OracleCommand oraCommandGetTableData = new OracleCommand(oraQueryGetTableData, oraConnection);
OracleDataReader oraReaderTableData = oraCommandGetTableData.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(oraReaderTableData);
// Exception might occur here
dataTable.WriteXml(writer, true);
这里有什么问题或者我该如何解决?