因为SQL没有与BOOLEAN对应的数据类型,所以不能:
n 将BOOLEAN值赋值给列
n 从数据表列获取值到BOOLEAN变量中
n 在SQL语句、SQL函数、或通过SQL对PL/SQL函数的调用中使用BOOLEAN。
不能将BOOLEAN值传递给DBMS_OUTPUT.PUT_LINE()和DBMS_OUTPUT.PUT()函数。只能使用IF或CASE将它们转换成字符串。
这2个数据类型是等价的。
它们存储有符号整数-2147483648~2147483647,32位。
相对于NUMBER的优点:
n 需要更少的存储
n 它的操作使硬件算术,而NUMBER使用库算术,所以它的操作更快。
如果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/ ,如需转载,请注明出处,否则将追究法律责任。