2017-07-20 16 views
0

xmlファイルをOracleデータベースに保存するには、多くの手順が必要です。C#XmlSerialiserからOracle Clob最適化へ

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); 
      } 
     } 
    } 
} 

私は残念ながら私はundestandすることはできませんこのエラーメッセージを取得

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

バッファサイズを1000から100000にすると処理が大幅に高速化されます。

各clob.writeはデータベースへの要求なので、データベースへの要求数を減らします。