我知道这个问题可能有一个微不足道的答案。我想在满足某些条件时从巨大的表中删除某些行。条件位于drdate
(varchar字段),它保存日期信息,因此需要进行转换。该表非常庞大,理想情况下我不想花太多时间来运行查询。
delete from products
where (to_date('drdate','mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy'))
返回:
SQL错误:ORA-01858:找到了数字所在的非数字字符 01858. 00000
答案 0 :(得分:2)
试试这个:
delete from products
where (to_date(drdate,'mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy'))
如评论中所述,引号会导致函数评估字符串值'drdate',而不是drdate
列中的值。