转自:http://www.programgo.com/article/20022195177/ http://blog.csdn.net/ddxkjddx/article/details/7209229
郁闷了很久,始终无法插入Oracle CLOB数据。网上搜索到的文章,多半是过时的方式,复杂容易出错。
偶然看到 Microsoft.Practices.EnterpriseLibrary.Data.Oracle 心中窃喜,EnterpriseLibrary想的挺周到,实现了Oracle的操作方式。继续寻找,看到了下面一个方法
AddParameter(OracleCommand command, string name, OracleType oracleType, int size, ParameterDirection direction, bool nullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value);
一看,有OracleType,这下好了,可以用OracleType.Clob了。
下面是实现的代码
//连接数据库 OracleDatabase db = (OracleDatabase)DatabaseFactory.CreateDatabase(Constant.DBNAME); //插入信息的SQL。content的类型是CLOB string insertSql = "INSERT INTO article(content) VALUES (:content)"; //获得DbCommand对象 OracleCommand dbCommand = (OracleCommand)db.GetSqlStringCommand(insertSql); //为SQL中的变量赋值 db.AddParameter(dbCommand, "content", OracleType.Clob, strContent.Length, ParameterDirection.Input, false, 0, 0, "", DataRowVersion.Default, strContent); /*内容*/ //执行操作 int affectRows = db.ExecuteNonQuery(dbCommand);