尝试使用 .NET Core 执行存储过程时"ORA-03115: unsupported network datatype or representation"



我使用的是Oracle 11g数据库。当我尝试使用.NET Core和Oracle.ManagedDataAccess.Core执行存储过程时,我会得到以下异常:

ORA-03115:不支持的网络数据类型或表示";来源";Oracle.NET数据提供程序,托管驱动程序

这是我的C#代码:

using (OracleCommand command = new OracleCommand("procedureName", conn))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new OracleParameter("p_system", OracleDbType.Varchar2, "SystemName", ParameterDirection.Input));
command.Parameters.Add(new OracleParameter("p_filename", OracleDbType.Varchar2, "fileName.xml", ParameterDirection.Input));
command.Parameters.Add(new OracleParameter("p_document", OracleDbType.Clob, "document", ParameterDirection.Input));
OracleParameter errorParameter = new OracleParameter("p_error", OracleDbType.Int32, ParameterDirection.Output);
command.Parameters.Add(errorParameter);
command.Parameters.Add(new OracleParameter("p_DumpDebugMsgs", OracleDbType.Boolean, true, ParameterDirection.Input));
command.ExecuteNonQuery();
}

这就是我要执行的存储过程:

procedure procedureName(
p_system IN VARCHAR2,
p_filename IN VARCHAR2,
p_document IN CLOB,
p_error OUT NUMBER,
p_DumpDebugMsgs IN BOOLEAN DEFAULT FALSE
)

感谢您的帮助:(

我解决了我的问题!布尔参数p_DumpDebugMsgs导致异常。ODP似乎不支持这里描述的布尔参数。

因为参数p_DumpDebugMsgs有一个默认值,所以我最终没有传递这个参数的值。

最新更新