【问题标题】:Oracle Clob to C# StringOracle Clob 到 C# 字符串
【发布时间】:2020-11-23 06:59:54
【问题描述】:

我正在使用 Oracle.ManagedDataAccess.Client 将数据从 Oracle 获取到 C#。我正在检索的返回值是 Clob

 cmd.Parameters.Add("return_value", OracleDbType.Clob).Direction =
   ParameterDirection.ReturnValue;

我似乎无法将其转换string 或 c# 识别的任何内容。

【问题讨论】:

  • 你是怎么尝试的? Clob 是流,因此您可能会看到类似 var s = new StreamReader(parameter.Value).ReadToEnd() 的内容
  • 我在做,string test = cmd.Parameters["return_value"].Value.ToString();但它不起作用。我尝试了 new StreamReader(cmd.Parameters["return_value"].Value.).ReadToEnd(),但它说它不能从对象转换为 System.IO.Stream
  • 什么是cmd.Parameters["return_value"].Value.GetType()

标签: c# oracle api web-services


【解决方案1】:

我设法做到了:

OracleClob myLob = (OracleClob)cmd.Parameters[0].Value;
                    ret_string = Convert.ToString(myCLob.Value);

【讨论】:

    【解决方案2】:

    您是否尝试过类似(clob 是您的 Clob)之类的方法?

    string clobValue = (string) clob.Value;

    根据此解决方案,它应该可以工作: Converting a large CLOB object to .NET string to put into a DataGridView cell

    【讨论】:

    • 当我这样做时,我得到了 Oracle.ManagedDataAccess.Types.OracleClob。我调试的时候,可以先去cmd,然后参数,再return_value,value属性有'Oracle.ManagedDataAccess.Types.OracleClob',但是当我展开Value时,它有另一个value属性,里面有我想要的字符串。跨度>
    猜你喜欢
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2015-12-04
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    相关资源
    最近更新 更多