【发布时间】:2016-06-14 23:26:07
【问题描述】:
我的 Oracle 存储过程正在接受一个 clob 类型参数。
procedure p_insert_data(xml_string in clob)
在 C# 中,我试图通过传递一个 XML 文件的 clob 数据来调用该过程。
以下是我尝试过的方式:
将 XML 转换为字符串
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"D:\Response_min.xml");
string xml = xmlDoc.OuterXml;
从 C# 将 clob 数据传递给存储过程
OracleParameter p_data = new OracleParameter("p_xml_string", OracleDbType.Clob);
p_data.Direction = ParameterDirection.Input;
p_data.Value = xml; //xml is of string type
dbCommand.Parameters.Add(p_data);
dbCommand.ExecuteNonQuery();
我遇到了异常
由于对象的当前状态,操作无效
我尝试将 bytes[] 传递给 clob 参数而不是 xml 字符串,但仍然没有成功。
我也尝试使用内容较少的 XML。
有人知道我应该如何传递 clob 值吗?
【问题讨论】:
-
@NullException 这与 CLOB 大小问题无关,我也尝试了内容较少的 XML。
-
试试
OracleParameter("p_xml_string", OracleDbType.XmlType);
标签: c# asp.net oracle c#-4.0 oracle10g