1. 程式人生 > >oracle的%type簡介

oracle的%type簡介

 %TYPE屬性       
     在PL/SQL中可以將變數和常量宣告為內建或使用者定義的資料型別,以引用一個列名,同時繼承他的資料型別和大小。這種動態賦值方法是非常有用的,比如變數引用的列的資料型別和大小改變了,如果使用了%TYPE,那麼使用者就不必修改程式碼,否則就必須修改程式碼。   

TYPE是用於取得表或遊標中的欄位型別;這樣表的型別或者欄位修改以後,定義的變數無需修改程式碼;

     v_empno    SCOTT.EMP.EMPNO%TYPE;   
    
     v_salary    EMP.SALARY%TYPE;   

     DELCARE   
    
     V_A    NUMBER(5):=10;   
    
     V_B    V_A%TYPE:=15;   
    
     V_C    V_A%TYPE;   

   PL/SQL變數可以用來儲存在資料庫表中的資料。在這種情況下,變數應該擁有與表列相同的型別。例如,students表的first_name列的型別為VARCHAR2(20),我們可以按照下述方式宣告一個變數:

DECLARE

       v_FirstName VARCHAR2(20);

但是如果first_name列的定義改變了會發生什麼(比如說表改變了,first_name現在的型別變為VARCHAR2(25))?那就會導致所有使用這個列的PL/SQL程式碼都必須進行修改。如果你有很多的PL/SQL程式碼,這種處理可能是十分耗時和容易出錯的。

這時,你可以使用”%TYPE”屬性而不是將變數型別硬性編碼。

例如:

DECLARE

       v_FirstName students.first_name%TYPE;

通過使用%TYPE,v_FirstName變數將同students表的first_name列的型別相同(可以理解為將兩者邦定起來)。