0

我想在 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[].

4

2 回答 2

1

尝试这个

byte[] newvalue = System.Text.Encoding.Unicode.GetBytes(mystring);
var clob = new OracleClob(db);
clob.Write(newvalue, 0, newvalue.Length);
于 2017-05-08T17:59:49.283 回答
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 参数列表并使用这些参数执行查询。

于 2019-09-18T07:17:57.197 回答