我想在c#中将字符串作为clob数据类型插入到oracle数据库中。我怎样才能做到这一点?一些代码例如:
private static byte[] GetByteArr(string listParameter)
{
if (listParameter!=null)
{
return Encoding.Unicode.GetBytes(listParameter);
}
else
{
return Encoding.Unicode.GetBytes(string.Empty);
}
}
byte[] toArr = GetByteArr((string)eMessageList[1]);
emailParameters[1] = command.Parameters.Add("pEto",OracleDbType.Clob, toArr,ParameterDirection.Input);
command.ExecuteNonQuery();
此代码将toArr
作为System.Byte[]
插入数据库。
答案 0 :(得分:0)
试试这个
byte[] newvalue = System.Text.Encoding.Unicode.GetBytes(mystring);
var clob = new OracleClob(db);
clob.Write(newvalue, 0, newvalue.Length);
答案 1 :(得分:0)
尽管问题似乎已经过时,但我想分享一个对我有用的例子。
我的目的是将JSON字符串(包含超过32k个字符)保存到clob字段中。
这就是我所做的:
string JSON_string = JsonConvert.SerializeObject(SomeObject);
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
myCommand.Parameters.AddWithValue("", SomeAttribute);
myCommand.Parameters.AddWithValue("", SomeAttribute2);
myCommand.Parameters.AddWithValue("", SomeAttribute3);
myCommand.Parameters.AddWithValue("", JSON_string);
然后执行命令。我正在使用我们的公司库来做到这一点:
DataSet myDS = myUser.myLoginUser._MySpAppS.RunSQL("INSERT INTO MARS$T_BCSAVINGS (MASSNAHMEN_ID, USER_ID, AKTIV, HEBELDATEI) VALUES (?, ?, ?, ?);", myCommand.Parameters);
我将结果保存在DataSet中只是为了检查查询是否成功。
所以基本上我所做的就是将字符串移交给OleDbCommand参数列表,并使用这些参数执行查询。