1、数值型数字类型。

1)、Number类型:

  Number取值范围正的是10的-130次方到10的126次方减1。即:(1.0E-130) 到 (1.0E126-1)。

  定义的时候有几种形式:

  a、直接number,就是number类型的整个取值范围。

  b、number(precision,scale):precision代表数据的有效数字最大长度,scale代表小数点右边几位。

  如:number(5,2),最大值为:999.99,number(3,5)最大值就是0.00999,Number(3,-2)代表,最小值就是99900,比99900小的就直接保存0了,scale正的就是小数点向左移动几位,为负数就是向右移动几位,不足的用0补齐。

  c、number(9) 和number(9,0)一样。

2)、Pls_Integer类型:

  这种类型范围:-2 147 483 648 到 2 147 483 648,都为整数,就是C#中int的取值范围。

  Pls_Integer类型效率上比Number效率高很多,如果只是进行整数运算,不要和Number类型进行转换,就尽量使用Pls_Integer类型。

3)、Binary_Integer类型:

  Pls_Integer替换的类型,Oracle 7.3版本以后不再使用。

4)、Simple_Integer类型:

  取值范围和Pls_Integer一样,和Pls_Integer相比,不能为null,不会检查溢出,这两个比Pls_Integer差,不过它的性能比Pls_Integer好很多。

5)、Binary_float和Binary_double类型:

   符合IEEE-754浮点标准定义的类型,一个单精度,一个双精度,表示形式为:0.95f单精度,0.95d双精度。

  PL/SQL和SQL都支持的直接量:binary_fload_nan 和binary_double_nan    不是一个数字

                  binary_fload_infinity和binary_double_infinity    代表无穷大

  优先级:binary_double> binary_fload>number,同一个计算式中包含这几个类型,会把结果转换为优先级高的类型。

  这两种类型在进行密集的数字运算的时候,效率比number高很多,如计算50万次圆的面积等会用到。

6)、Simple_fload和simple_double类型:

  11g以后出现的新类型,取值范围和binary_fload和binary_double 一样,性能也比binary开头的高一些,不过不支持null值,不支持IEEE特出常量(binary_fload_nan 不是一个数字等),在正确的使用条件下,使用它们效率会高一些。

7)、数字子类型:

  就是上面讲的类型的别名:flaot代表Number精度达126个二进制数字,int代表number(38),integer代表number(38)等...

 

 

 

posted on 2013-06-28 15:49  Kelly_HanShuai  阅读(177)  评论(0)    收藏  举报