OracleCommand moracmd = new OracleCommand();
moracmd.Connection = getMainOraConnection();
moracmd.Transaction = oraTranMain; //挂事务
OracleParameter op = new OracleParameter("pb", OracleType.Clob);
op.Value = xmldata;
moracmd.Parameters.Add(op);
//这里如何加入?
moracmd.ExecuteNonQuery();
上述程序执行会导致临时表空间不断增长,因为在临时表空间的段不释放,导致PGA中相应的LOB CTL STRUCT 也不释放。
临时表空间与PGA都持续增加。解决办法是在代码中加入如下语句:
dbms_lob.freetemporary(clb);
这样临时表空间的临时LOB对象可以释放空间,供同一会话使用。