郁闷了很久,始终无法插入Oracle CLOB数据。网上搜索到的文章,多半是过时的方式,复杂容易出错。
偶然看到 Microsoft.Practices.EnterpriseLibrary.Data.Oracle 心中窃喜,EnterpriseLibrary想的挺周到,实现了Oracle的操作方式。继续寻找,看到了下面一个方法
下面是实现的代码
偶然看到 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);
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);