为了将xml文件保存到Oracle数据库,我需要执行许多步骤。
XmlCustomType xmlCustomType = new XmlCustomType();
// feed xmlCustomType
var xmlSerializer = new XmlSerializer(typeof(XmlCustomType));
string xml;
using (StringWriter textWriter = new StringWriter())
{
xmlSerializer.Serialize(textWriter, xmlCustomType);
xml = textWriter.ToString();
using (var sr = new StringReader(xml))
{
char[] buffer = new char[1000];
int numChars;
using (OracleConnection con = new OracleConnection(""))
{
OracleClob clob = new OracleClob(con);
while ((numChars = sr.ReadBlock(buffer, 0, buffer.Length)) > 0)
{
clob.Write(buffer, 0, numChars);
}
}
}
}
我想用
之类的东西来优化它XmlCustomType xmlCustomType = new XmlCustomType();
// feed xmlCustomType
var xmlSerializer = new XmlSerializer(typeof(XmlCustomType));
using (OracleConnection con = new OracleConnection(""))
{
OracleClob clob = new OracleClob(con);
xmlSerializer.Serialize(clob, xmlCustomType);
}
不幸的是,我收到了一条我无法理解的错误消息:
Unicode字节数组上的操作要求某些参数具有偶数值
从xmlserializer到OracleClob的最小步骤是什么?
答案 0 :(得分:0)
从1000转到100000缓冲区大小可以大大加快这个过程。
每个clob.write都是对数据库的请求,因此通过这样做可以降低对数据库的请求数。