首页 > PL/SQL > binary_double数据类型

binary_double数据类型

2014年5月17日 发表评论 阅读评论

      SQLPL/SQL都有数据类型binary_doublebinary_double类型的数据不会抛出异常,所以你需要和Oracle提供的常量进行比较来判断数据的合法性。

提供的常量 BINARY_DOUBLE_NAN:非数字

                BINARY_DOUBLE_INFINITY:正无穷

比较方法1

使用IS NAN判断返回的值是否是BINARY_DOUBLE_NAN

例如:

08:06:02 SCOTT@ orcl>select * from emp t where to_binary_double(t.sal) is NAN;

no rows selected

注意没有 IS INF判断返回的值是否是正无穷

例如:

比较方法2

08:06:06 SCOTT@ orcl>select * from emp t where to_binary_double(t.sal) is INF;

select * from emp t where to_binary_double(t.sal) is INF

                                                     *

ERROR at line 1:

ORA-00908: missing NULL keyword

直接使用提供的常量来比较

例如:

判断是否是非数字

08:10:05 SCOTT@ orcl>select * from emp t where to_binary_double(t.sal) =BINARY_DOUBLE_NAN;

no rows selected

Elapsed: 00:00:00.00

判断是否是正无穷

08:08:59 SCOTT@ orcl>select * from emp t where to_binary_double(t.sal) =BINARY_DOUBLE_INFINITY;

no rows selected

Elapsed: 00:00:00.00

比较方法3

使用常量的简写

判断是否是非数字

判断是否是正无穷

08:13:19 SCOTT@ orcl>select * from emp t where to_binary_double(t.sal) ='NAN';

no rows selected

08:13:24 SCOTT@ orcl>select * from emp t where to_binary_double(t.sal) ='INF';

no rows selected

Elapsed: 00:00:00.00

后记:

建议使用方法1或者2,方法3属于自己发明的。在官方文档上未找到例子。

PL/SQL中除了上面的2个常量还有另外4个分别是:

BINARY_DOUBLE_MAX_NORMAL

BINARY_DOUBLE_MIN_NORMAL

BINARY_DOUBLE_MAX_SUBNORMAL

BINARY_DOUBLE_MIN_SUBNORMAL

请勿用在SQL语句中使用。

binary_double对于的数据类型还有float_double用法雷同不再重述。

分类: PL/SQL 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.