C#-ODP.NET和ora-01475必须重新分析游标以更改绑定变量数据类型
在插入了一些具有真实日期值的记录之后,每当我尝试在列(类型为C#-ODP.NET和ora-01475必须重新分析游标以更改绑定变量数据类型,c#,.net,oracle,odp.net,C#,.net,Oracle,Odp.net,在插入了一些具有真实日期值的记录之后,每当我尝试在列(类型为DateTime)中插入空值时,我就会得到ora-01475 我使用的是将名称和值作为对象的OracleParameter构造函数(我假设数据类型是从对象的数据类型中暗示出来的),但由于有时我的参数值为null,因此它被设置为字符串,因此引发此错误 我不想使用显式获取数据类型的构造函数,因为我大量使用反射来构建OracleCommand对象及其参数 如果发现这种情况,如何重新分析光标(如错误所示)? 有没有其他人遇到过这种情况并找到了解
DateTime
)中插入空值时,我就会得到ora-01475
我使用的是将名称和值作为对象的OracleParameter
构造函数(我假设数据类型是从对象的数据类型中暗示出来的),但由于有时我的参数值为null,因此它被设置为字符串
,因此引发此错误
我不想使用显式获取数据类型的构造函数,因为我大量使用反射来构建OracleCommand
对象及其参数
如果发现这种情况,如何重新分析光标(如错误所示)?有没有其他人遇到过这种情况并找到了解决方案 您是否尝试过使用可空类型
DateTime? myDate;
//Code to set myDate value...
string sql = "[your SQL]"
using (OracleCommand command = new SqlCommand(sql, cn))
{
OracleParameter param = new OracleParameter(":Name",myDate);
command.Paerameters.add(param);
command.ExecuteNonQuery();
}
是的,这正是我遇到问题的原因,因为在第一个查询中,我传递了一个null,然后在后面传递了一个真实的日期……我通过显式指定参数DBType to date解决了这个问题,即使它是null。谢谢