ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Reference-BOOLEAN类型-PLS_INTEGER和BINARY_INTEGER数据类型

PLSQL Language Reference-BOOLEAN类型-PLS_INTEGER和BINARY_INTEGER数据类型

原创 Oracle 作者:LuiseDalian 时间:2014-03-09 17:21:01 0 删除 编辑

BOOLEAN类型

因为SQL没有与BOOLEAN对应的数据类型,所以不能:

n  将BOOLEAN值赋值给列

n  从数据表列获取值到BOOLEAN变量中

n  在SQL语句、SQL函数、或通过SQL对PL/SQL函数的调用中使用BOOLEAN。

不能将BOOLEAN值传递给DBMS_OUTPUT.PUT_LINE()和DBMS_OUTPUT.PUT()函数。只能使用IF或CASE将它们转换成字符串。

PLS_INTEGER和BINARY_INTEGER数据类型

这2个数据类型是等价的。

它们存储有符号整数-2147483648~2147483647,32位。

相对于NUMBER的优点:

n  需要更少的存储

n  它的操作使硬件算术,而NUMBER使用库算术,所以它的操作更快。

防止PLS_INTEGER溢出

如果2个PLS_INTEGER类型的值计算结果超出了PLS_INTEGER的范围,则会产生异常,如果如此可以将计算结果赋值给NUMBER类型的变量。


 

--PLS_INTEGER计算结果超出范围,产生异常

DECLARE

    p1 PLS_INTEGER := 2147483647;

    p2 PLS_INTEGER := 1;

    n NUMBER;

BEGIN

    n := p1 + p2;

END;

--正常执行

DECLARE

    p1 PLS_INTEGER := 2147483647;

    --使用number的预定义的子类型integer

    p2 INTEGER := 1;

    n NUMBER;

BEGIN

    n := p1 + p2;

    DBMS_OUTPUT.PUT_LINE(n);

END;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1104102/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    6043830