【发布时间】:2014-05-06 00:37:41
【问题描述】:
当我想通过 asp.net C# 方法在 oracle 数据库中更新类型为“日期”的行时,会出现以下错误:
错误: ORA-00932:不一致的数据类型:预期 NUMBER 得到了 TIMESTAMP
代码:
string query = String.Format("update mms_meetings m set m.end_date = :end_date where m.id = :id");
OracleCommand cmd = new OracleCommand("", GetDBConnection());
cmd.CommandType = CommandType.Text;
cmd.CommandText = query;
OracleParameter opId = new OracleParameter();
opId.DbType = DbType.Int32;
opId.Value = meetId;
opId.ParameterName = "id";
cmd.Parameters.Add(opId);
OracleParameter opDateEnd = new OracleParameter();
opDateEnd.DbType = DbType.DateTime;
opDateEnd.Value = dateEnd;
opDateEnd.ParameterName = "end_date";
cmd.Parameters.Add(opDateEnd);
cmd.ExecuteNonQuery();
cmd.Dispose();
CloseDBConnection();
【问题讨论】:
-
您的数据库中的
end_date是哪种类型? -
尝试更改将参数添加到查询中使用的顺序的顺序 - 首先是
end_date,id- 其次。 -
@Mikhail Oracle 不使用参数名称来区分合适的吗?
-
@HamletHakobyan 有时是,有时不是,(例如,stackoverflow.com/questions/959242/…),因此值得尝试以正确的顺序排列它们:)
-
按正确的顺序放置是问题所在。