0

我知道这个问题可能有一个微不足道的答案。当满足某些条件时,我想从一个巨大的表中删除某些行。条件为 on 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 的地方发现了一个非数字字符

4

1 回答 1

2

试试这个:

delete from products 
where (to_date(drdate,'mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy'))

如评论中所述,引号导致函数评估字符串值“drdate”而不是列中的值drdate

于 2012-10-30T15:07:01.837 回答