今天在看一个触发器代码的时候碰到了一个pls_integer类型,以前没碰到过,记录一下:
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 of PLS_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.
分享到:
相关推荐
数字类型可以分为三种基本类型:NUMBER、PLS_INTEGER 和 BINARY_INTEGER。 * NUMBER:以十进制格式进行存储,能够描述整数或实数。定义方式为 NUMBER(P,S),P 是精度,最大 38 位,S 是刻度范围, 可以在 -84......
- **PLS_INTEGER**:对于整数变量,推荐使用PLS_INTEGER类型以提高存储效率和计算速度。 - **SIMPLE_INTEGER**:虽然文档中未明确提及SIMPLE_INTEGER,但通常这类自定义类型也是为了特定场景下的优化设计。 2. **...
PLS_INTEGER 是一种整数类型,可以存储一个有符号的整形值,其精度范围和 BINARY_INTEGER 一样,即 -2^31 到 2^31。PLS_INTEGER 和 NUMBER 类型相比,有两个优点:占有较少的存储空间、可以直接进行算术运算。 六、...
- **定义与用途**:`PLS_INTEGER` 也是用来存储有符号整数的一种数据类型,取值范围与 `BINARY_INTEGER` 相同,即 -2^31 至 2^31。 - **特点**:相较于 `NUMBER` 和 `BINARY_INTEGER`,`PLS_INTEGER` 在存储空间和...
Oracle的PLS_INTEGER和BINARY_INTEGER在计算时有所不同,PLS_INTEGER溢出会导致错误,而BINARY_INTEGER会自动转换为NUMBER类型。 总结,MySQL、Oracle和SQL Server这三大数据库都有各自的特定数据类型,适应不同的...
`PLS_INTEGER`和`BINARY_INTEGER`在溢出时处理方式不同,`PLS_INTEGER`会引发错误,而`BINARY_INTEGER`会自动转换为`NUMBER`类型。 Oracle的`VARCHAR2`与MySQL的`VARCHAR`类似,但最大长度为4000个字节,而`LONG`...
- `table of`关键字用于定义数组,`index by`后面跟着的类型(这里是`pls_integer`)指定了数组下标的类型。 2. **初始化数组**: - 数组可以默认初始化为空,也可以在声明时赋值。例如: ```sql DECLARE type...
NUMBER是最通用的,可以存储整数或浮点数,PLS_INTEGER和BINARY_INTEGER是整数类型,PLS_INTEGER在溢出时会转换为NUMBER。字符类型有CHAR、VARCHAR2、LONG、NCHAR、NVARCHAR2,其中LONG可以存储大量文本数据。日期...
·Pls_Integer 类型变量值计算由 PL/SQL 执行,可能出现溢出错误,但执行效率较高。Rowtype 类型是基于表结构的记录类型,可以直接引用表中的列,无需显式声明列的名称和数据类型。Record 类型允许自定义结构,类似...
- **PLS_INTEGER**: 这也是有符号整数类型,其范围与BINARY_INTEGER相同,但存储空间更小,运算速度更快。当计算可能导致溢出时,PLS_INTEGER会抛出异常,而BINARY_INTEGER则可能不会。 在编写PL/SQL程序时,选择...
- PLS_INTEGER 和 BINARY_INTEGER:仅用于整数,溢出处理方式不同。 - 字符:CHAR、VARCHAR2、LONG、NCHAR 和 NVARCHAR2。 - CHAR:定长字符串,不足部分用空格填充。 - VARCHAR2:变长字符串,长度可变,存储...
- **整数**: `BINARY_INTEGER` 和 `PLS_INTEGER` 是处理整数时推荐使用的数据类型。它们提供了一个更高效的运算环境,并且占用较少的内存空间。 - **浮点数**: `BINARY_DOUBLE` 和 `BINARY_FLOAT` 适用于需要高精度...
- `v_start PLS_INTEGER`:初始值为1,表示从Blob数据的起始位置开始读取。 - `v_buffer PLS_INTEGER`:每次读取的数据量,默认为32767个字符。 2. **创建临时Clob**: - 使用`DBMS_LOB.CREATE_TEMPORARY`函数...
在此示例中,分别使用了`NUMBER`、`BINARY_INTEGER`和`PLS_INTEGER`三种不同的数据类型。实验结果显示,这三种类型在执行相同循环时的时间差异非常小,分别为0.3122秒、0.3153秒和0.3153秒。尽管如此,在实际应用中...
使用Oracle预定义的数组类型,如`PLS_INTEGER`数组: ```sql DECLARE x PLS_INTEGER[]; BEGIN x := new PLS_INTEGER(); END; ``` b. 自定义数组类型,通常通过创建Package实现: ```sql CREATE OR ...
- `PLS_INTEGER` 和 `BINARY_INTEGER` 都是整数类型,但`PLS_INTEGER`更适合PL/SQL内部使用,而`BINARY_INTEGER`更接近于数据库层面的整数。 - `CHAR` 是定长字符串类型,最多可存储255个字符。 - `VARCHAR2` 是...
例如,对于1亿次循环的累加操作,使用`PLS_INTEGER`和`BINARY_INTEGER`类型时,完成时间明显短于使用`NUMBER`类型。这表明在处理大量整数运算时,选择合适的整数类型可以显著提高性能。 ##### 2. 变量的声明及NOT ...
2. **PLS_INTEGER** 和 **BINARY_INTEGER**: 两者都是整数类型,但BINARY_INTEGER在溢出时自动转为NUMBER,PLS_INTEGER则会导致错误。 3. **CHAR**: 定长字符串,不足部分用空格填充,最大2000字节。 4. **VARCHAR2*...
- **基本数据类型**:PLSQL提供了多种基本数据类型,如`NUMBER`(用于存储浮点或整数),`INT`(整数型,与PLS_INTEGER类似但不常用),`PLS_INTEGER`(整数型,溢出时会报错),`BINARY_INTEGER`(整数型,支持带...