2013-03-07 50 views

回答

3

TYPE關鍵字在編譯時解析並且對性能沒有影響。

您應該努力在可能的地方使用它,因爲它可以在您存儲的程序和對象中創建靈活性。當引用的對象發生變化並且引用它的程序使用TYPE引用時,程序會自動爲調用者提供更改 - 只需重新編譯並使用新定義即可。使用非TYPE引用時,程序可能會中斷,因爲定義的字段類型對於引用列而言變得太大。

舉例來說,如果我有一個簡單的表:

CREATE TABLE A (I1 INTEGER, C1 VARCHAR2(10)); 

我有一個存儲過程,從該表上寫着:

PROCEDURE P 
    var VARCHAR2(10); 
BEGIN 
    SELECT C1 INTO var FROM A WHERE I1 = 1; 
END; 

這工作,直到您修改長度,時間列:

ALTER TABLE A MODIFY C1 VARCHAR2(20); 

現在你可以從你的選擇中得到一個錯誤。

如果你寫的程序是這樣的:

PROCEDURE P 
    var A.C1%TYPE; 
BEGIN 
    SELECT C1 INTO var FROM A WHERE I1 = 1; 
END; 

那麼你的代碼都難,因爲當你運行它甲骨文將重新編譯過程,檢測型號。

+0

感謝您的寶貴答案! DCookie。 – PhatHV 2013-03-07 03:06:51

相關問題