public static XmlDocumentEntity CreateXmlDocumentEntity(int DptID, int FlowType, string XmlContent)
{
#region 要做ORACLE的
if (SysConfig.DataBaseType == "Oracle")
{ byte[] tempBuff = System.Text.Encoding.Unicode.GetBytes(XmlContent);
OracleParameter TmpContent = new OracleParameter("tempblob", OracleType.Clob);
TmpContent.Direction = ParameterDirection.Output;
string tmpSql = "DECLARE A clob;BEGIN DBMS_LOB.CREATETEMPORARY(A, FALSE); " + ":tempblob := A; " + "END;"; // string tmpSql = "declare xx clob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;";
IDataParameter[] parameters11 ={ TmpContent, };
OracleConnection conn = new OracleConnection(SystemConfig.ConnectionString);
OracleCommand comm = new OracleCommand(tmpSql, conn); conn.Open();
OracleTransaction tx;
tx = conn.BeginTransaction();
comm.Transaction = tx;
comm.Parameters.Add(TmpContent);
comm.ExecuteNonQuery();
OracleLob tempLob = (OracleLob)TmpContent.Value;
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite); tempLob.Write(tempBuff, 0, tempBuff.Length);
tempLob.EndBatch();
tx.Rollback();
conn.Close();
OracleParameter Content = new OracleParameter("XmlContent", OracleType.Clob);
Content.Value = tempLob;
IDataParameter[] parameters = new IDataParameter[] { Factory.CreateParameter("@DptID",DptID), Factory.CreateParameter("@FlowType",FlowType), Content };
IDbHelper DBHelper = Factory.CreateDBAccess();
DBHelper.ExecuteNonQuery(SystemConfig.ConnectionString, CommandType.StoredProcedure, "PFlow_SetXmlContent", parameters); XmlDocumentEntity Entity = new XmlDocumentEntity(DptID, FlowType, XmlContent); return Entity; }
}