我想使用to_number函数将varchar列转换为数字但是我在理解Oracle尝试执行SQL的顺序时遇到了一些麻烦。
声明如下;
select * from table where column is not null and to_number(column, '999.9') > 20
当Oracle执行此操作时,它会抛出无效的数字异常。我理解Oracle使用某种关系代数公式优化了SQL语句但是有人能告诉我如何安全地使用to_number运算符来实现我的目标吗?
答案 0 :(得分:3)
有人可以告诉我如何安全地使用to_number运算符来实现我的目标吗?
不幸的是,在您申请to_number
之前,您必须以某种方式first filter out the rows with non-numerical data。转换函数本身“不安全”,如果你愿意,它会使整个查询在单个无效输入上崩溃。