您的位置:首页 > 数据库 > Oracle

ORACLE数据库中CLOB数据的插入和快速读取

2012-08-02 21:18 465 查看
//CLOB数据的插入:

using (OracleConnection connection = new OracleConnection(connectStr))
{
OracleCommand cmd = connection.CreateCommand())
//创建命令
cmd.CommandText = "INSERT INTO MyTable (ClobField) VALUES (:context))"
//创建命令中对应的参数
OracleParameter myParameter = new OracleParameter(":context", OracleType.Clob);
//设置参数的值
myParameter.Value = strOfClob;
//绑定参数至命令
cmd.Parameters.Add(myParameter);
//执行命令
cmd.ExecuteNonQuery();
}

//CLOB数据的获取:

//方式一:速度慢

using (OracleConnection connection = new OracleConnection(connectStr))
{
string querySql="Select ClobField From MyTable";
OracleDataAdapter adapter = new OracleDataAdapter(querySql, oraconnection);
DataSet ds = new DataSet();  //填充数据集
adapter.Fill(ds);
string clobContext = null;
foreach (DataRow dataRow in ds.Tables[0].Rows)
{
//获取内容
clobContext = Convert.ToString(dataRow["ClobField"]);
}
}

//方式二:速度快

using (OracleConnection connection = new OracleConnection(connectStr))
{
//创建命令
OracleCommand cmd = connection.CreateCommand();
//指定查询语句
cmd.CommandText = "Select ClobField From MyTable";
//创建Reader
OracleDataReader reader = cmd.ExecuteReader();

string clobContext = null;
while (reader.Read())
{
OracleLob clob = reader.GetOracleLob(0);
//创建缓存
byte[] buffer = new byte[(int)clob.Length];
long clobLength = clob.Length;
//装载内容至缓存
clob.Read(buffer, 0, (int)clob.Length);
//获取内容
clobContext = Encoding.Unicode.GetString(buffer);
}
reader.Close();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息