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)等...
浙公网安备 33010602011771号