string vDate="2017/06/08";
OracleCommand cmd= new OracleCommand();
OracleParamater pDate= new OracleParameter("pDate",OracleDbType.Varchar2);
pDate.Direction=ParameterDirection.Input;
pDate.Value= vDate;
cmd.Parameters.Add(pDate);
cmd.CommandText="select * from testtable where joinDate<=to_date(:pDate, 'YYYY/MM/DD')";
cmd.CommandType=CommandType.Text;
DataSet ds= new DataSet();
OracleDataAdapter adp= new OracleDataAdapter(); //Please assume that db is connected successfully.
adp.fill(ds);
joinDate类型是Date。
当应用程序执行查询时,它会给出ora-01841错误。我也尝试使用OracleDBType.Date,将vDate指定为DateTime类型。我该如何解决这个问题?
我们非常感谢您的帮助。
答案 0 :(得分:0)
我认为应该是new OracleParameter("pDate",OracleDbType.Varchar2)
而不是OracleParameter("pDate",OracleDbType.date);
答案 1 :(得分:0)
你应该更好地使用它:
DateTime vDate = new DateTime(2017, 6, 8);
OracleCommand cmd= new OracleCommand();
cmd.CommandText="select * from testtable where joinDate <= :pDate";
OracleParamater pDate= new OracleParameter("pDate",OracleDbType.Date);
pDate.Direction=ParameterDirection.Input;
pDate.Value= vDate;
cmd.Parameters.Add(pDate);
答案 2 :(得分:0)
如果您有其他参数,请确保它们的顺序正确。