PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-使用者定義的PL/SQL子型別

LuiseDalian發表於2014-03-09

使用者定義的PL/SQL子型別

PL/SQL允許定義自己的子型別,基型別可以是任何PL/SQL scalar型別,包含先定義的使用者定義的子型別。

子型別可以:

n  提供對ANSI/ISO型別的相容

n  顯示該種型別的資料成員的預期用途(problem)

n  檢測超範圍的值

0.1.1 無限制的子型別

無限制的子型別與基型別具有的相同的值的集合,所以它只是基型別的另一個名稱。因此同一基型別的各個無限制子型別以及基型別之間可以互相轉換,且沒有資料型別轉換髮生。

SUBTYPE 子型別名稱 IS 基型別名稱;

 

PL/SQL中預定義的無限制的子型別的一個例子,是為了相容ANSI而定義了:

SUBTYPE "DOUBLE PRECISION" IS FLOAT;

 


 

--給正常型別一個別名,不是什麼好習慣

DECLARE

    SUBTYPE Balance IS NUMBER;

 

    checking_account        Balance(6,2);

    savings_account         Balance(8,2);

    certificate_of_deposit  Balance(8,2);

    max_insured  CONSTANT   Balance(8,2) := 250000.00;

 

    SUBTYPE Counter IS NATURAL;

 

    accounts     Counter := 1;

    deposits     Counter := 0;

    withdrawals  Counter := 0;

    overdrafts   Counter := 0;

 

    PROCEDURE deposit (

        account  IN OUT Balance,

        amount   IN     Balance

    )

    IS

    BEGIN

        account  := account + amount;

        deposits := deposits + 1;

    END; 

BEGIN

    NULL;

END;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1104105/,如需轉載,請註明出處,否則將追究法律責任。

相關文章