當一個應用軟體要分發給顧客時——或者甚至是同一個公司的多個地點時——就會出現版本問題。如果所設計的程式要用到Oracle某個特定版本的具體特性時,那麼當在早期的版本中運行時,就會失敗。
檢查版本資訊的一種方法就是選擇動態性能查看表V$VERSION。它輸出一組標題似的文字,指明Oracle的版本和各種組件的發佈級別。但是,要解析這個輸出是非常繁瑣的。
當Oracle 9i Release 2被引入之後,它包括了一個被稱作DBMS_DB_VERSION的新的PL/SQL數據包,使得版本的檢查變得更簡單了。這個數據包中沒有程式或函數,僅有一系列您可以查詢,從而確定當前運行版本有用的常數。
在這個數據包中,最簡單的兩個常數是VERSION和RELEASE。以10gR2為例,在SQL*Plus中執行以下命令,將會返回數字10:
SET SERVEROUT ON
EXEC DBMS_OUTPUT.PUT_LINE (DBMS_DB_VERSION.VERSION);
|
其他的常數都是邏輯值,它們表明瞭當前運行版本是否比某個具體的截止版本老,或者是相同的。只需要簡單地測試一下適當的邏輯值,而無需通過提取版本、發佈資訊和編寫邏輯來檢查:
BEGIN
IF (DBMS_DB_VERSION.VER_LE_9_2) THEN
DBMS_OUTPUT.PUT_LINE ('Oracle 10g is required.');
ELSE
DBMS_OUTPUT.PUT_LINE ('Version check successful.');
END IF;
END;
/
|
引入這個特性主要是為了在PL/SQL中支援有條件的編輯。以這些常數為基礎,您可以為您的PL/SQL代碼指定不同的數據類型或者避免使用未實現的特性。
(T004)