Oracle - 将to_number函数应用于varchar列

时间:2013-07-19 07:09:43

标签: oracle

我想使用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运算符来实现我的目标吗?

1 个答案:

答案 0 :(得分:3)

  

有人可以告诉我如何安全地使用to_number运算符来实现我的目标吗?

不幸的是,在您申请to_number之前,您必须以某种方式first filter out the rows with non-numerical data。转换函数本身“不安全”,如果你愿意,它会使整个查询在单个无效输入上崩溃。