pls_integer类型

转载 2012年03月27日 15:23:38

PLS_INTEGER可以存储一个有符号的整形值,其精度范围和BINARY_INTEGER一样,是:-2^31~2^31。

PLS_INTEGER和NUMBER比较起来,其优点是:
1).占有较少的存储空间;
2).可以直接进行算术运算(在NUMBER上不能直接进行算术运算,如果要计算,NUMBER必须先被转换成二进制)。所以在进行算术的时候PLS_INTEGER比NUMBER和BINARY_INTEGER快一些。

PLS_INTEGER和BINARY_INTEGER区别:
PLS_INTEGER进行的运算发生溢出的时候,会触发异常。但是当BINARY_INTEGER运算发生溢出时,如果可以指派给一个NUMBER变量(没有超出NUMBER的精度范围)的话就不会触发异常。

Benefits of Using PLS_INTEGER Datatype in PL/SQL
If you have a whole-number counter, for example in a loop or record counter, consider using a datatype ofPLS_INTEGER instead of INTEGER or NUMBER. When declaring an integer variable,PLS_INTEGER is the most efficient numeric datatype because its values require less storage than INTEGER or NUMBER values, which are represented internally as 22-byte Oracle numbers. Also,PLS_INTEGER operations use machine arithmetic, so they are faster than BINARY_INTEGER, INTEGER, or NUMBER operations, which use library arithmetic.
--------------------------------------------------------------------------
PLS_INTEGER Datatype
You use the PLS_INTEGER datatype to store signed integers. Its magnitude range is -2147483648 to 2147483647, represented in 32 bits. PLS_INTEGER values require less storage than NUMBER values and NUMBER subtypes. Also, PLS_INTEGER operations use hardware arithmetic, so they are faster than NUMBER operations, which use library arithmetic. For efficiency, use PLS_INTEGER for all calculations that fall within its magnitude range. For calculations outside the range of PLS_INTEGER, you can use the INTEGER datatype.

Note:

The BINARY_INTEGER and PLS_INTEGER datatypes are identical. See "Change to the BINARY_INTEGER Datatype".

When a calculation with two PLS_INTEGER datatypes overflows the magnitude range of PLS_INTEGER, an overflow exception is raised even if the result is assigned to a NUMBER datatype.

tips:1)pls_integer类型也是数字类型,但和number类型不同,number可以存储实数,而pls_integer只能存储-2147483647到+2147483647之间的整数,如果使用pls_integer类型时发生溢出,系统将会报错。
        2)binary_integer与pls_integer类似,在9.2版本以前大量使用,从9.2以后,从Oracle内部一些组件可以看的出,大有被pls_integer取代之势(pls_integer比binary_integer具有更少的存储开销和更好的访问性能,所以Oracle从9.2以后推荐你尽量能使用pls_integer就使用pls_integer)。它也是只能存储-2147483647到+2147483647之间的整数。
        3)在oracle 11g中,又增加了一个新的类似的数据类型simple_integer,不过simple_integer不能包含空值,它的取值范围是[-2147483648..2147483647]。在11g中,simple_integer相对pls_integer在性能上又有所提高,如果在实际的pl/sql中既不需要overflow检查也不会包含null值,Oracle建议你使用simple_integer.

pls_integer类型

今天在看一个触发器代码的时候碰到了一个pls_integer类型,以前没碰到过,记录一下: PLS_INTEGER可以存储一个有符号的整形值,其精度范围和BINARY_INTEGER一样,是:-2^...
  • heqiyu34
  • heqiyu34
  • 2011年08月22日 16:49
  • 9688

PLSQL中的类型与PLS_INTEGER

转的别人的: Binary_Integer 与 Pls_Integer 都是整型类型. Binary_Integer类型变量值计算是由Oracle来执行,不会出现溢出,但是执行速度较慢,因为它是由O...
  • mzj245073253
  • mzj245073253
  • 2016年09月04日 10:26
  • 710

PLS_INTEGER类型

PLS_INTEGER是PLSQL环境中的一个特殊的数字类型,这种类型的值是通过硬件平台原生整数格式来表示的。它存在的意义完全是为了加速运算,具有以下特点1.是一个整数类型2.支持范围-2147483...
  • yoursly
  • yoursly
  • 2018年02月13日 10:26
  • 19

学习PLS_INTEGER,BINARY_INTEGER,INTEGER,NUMBER的概念及性能差异

学习PLS_INTEGER,BINARY_INTEGER,INTEGER,NUMBER的概念及区别;以及在性能方面的差异           1,各个概念               类型      ...
  • cunxiyuan108
  • cunxiyuan108
  • 2014年01月06日 15:59
  • 2342

PLS_INTEGER、BINARY_INTEGER和SIMPLE_INTEGER区别

PLS_INTEGER PLS_INTEGER数据类型保存范围-2147483648到2147483647的有符整数。这种类型的值是通过底层硬件平台的原生整数格式来表示的。 ...
  • ashic
  • ashic
  • 2016年08月07日 00:49
  • 851

Oracle 的pls_integer类型

pls_integer类型 PLS_INTEGER可以存储一个有符号的整形值,其精度范围和BINARY_INTEGER一样,是:-2^31~2^31。 PLS_INTEGER和NUMBER...
  • sinat_34259781
  • sinat_34259781
  • 2017年11月24日 11:34
  • 61

学习PLS_INTEGER,BINARY_INTEGER,INTEGER,NUMBER的概念及区别以及在性能方面的差异

 学习PLS_INTEGER,BINARY_INTEGER,INTEGER,NUMBER的概念及区别以及在性能方面的差异 1,各个概念               类型       ...
  • gh320
  • gh320
  • 2013年12月05日 00:08
  • 1225

OCP-1Z0-053-V13.02-226题

226.Examine the following PL/SQL block: DECLARE my_plans pls_integer; BEGIN my_plans := DBMS_SPM...
  • rlhua
  • rlhua
  • 2013年11月21日 14:20
  • 5789

ocp-427

QUESTION NO: 427 Examine the following PL/SQL block: DECLARE my_plans pls_integer; BEGIN my_pla...
  • xuejiayue1105
  • xuejiayue1105
  • 2015年10月15日 15:55
  • 744

PLS_INTEGER

The predefined numeric subtype PLS_INTEGER is especially useful, because its operations use hardw...
  • u010009900
  • u010009900
  • 2014年12月03日 21:00
  • 319
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pls_integer类型
举报原因:
原因补充:

(最多只允许输入30个字)