PLSQL Language Reference-BOOLEAN型別-PLS_INTEGER和BINARY_INTEGER資料型別

LuiseDalian發表於2014-03-09

BOOLEAN型別

因為SQL沒有與BOOLEAN對應的資料型別,所以不能:

n  BOOLEAN值賦值給列

n  從資料表列獲取值到BOOLEAN變數中

n  SQL語句、SQL函式、或通過SQLPL/SQL函式的呼叫中使用BOOLEAN

不能將BOOLEAN值傳遞給DBMS_OUTPUT.PUT_LINE()DBMS_OUTPUT.PUT()函式。只能使用IFCASE將它們轉換成字串。

PLS_INTEGERBINARY_INTEGER資料型別

2個資料型別是等價的。

它們儲存有符號整數-2147483648214748364732位。

相對於NUMBER的優點:

n  需要更少的儲存

n  它的操作使硬體算術,而NUMBER使用庫算術,所以它的操作更快。

防止PLS_INTEGER溢位

如果2PLS_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部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1104102/,如需轉載,請註明出處,否則將追究法律責任。

相關文章