PLSQL Language Reference-PL/SQL語言基礎-條件編譯-條件編譯舉例
條件編譯舉例
BEGIN $IF DBMS_DB_VERSION.VER_LE_10_1 $THEN -- 選擇指令開始 $ERROR '不支援的資料庫版本' $END -- 錯誤指令 $ELSE DBMS_OUTPUT.PUT_LINE ( '版本 ' || DBMS_DB_VERSION.VERSION || '.' || DBMS_DB_VERSION.RELEASE || ' 被支援.' ); -- 這個commit語句從10.2開始支援 COMMIT WRITE IMMEDIATE NOWAIT; $END -- 選擇指令結束
END;
|
--設定會話引數 --ALTER SESSION SET PLSQL_CCFLAGS = 'my_debug:FALSE, my_tracing:FALSE'; --ALTER SESSION SET PLSQL_CCFLAGS = 'my_debug:TRUE, my_tracing:FALSE'; --包規範 CREATE OR REPLACE PACKAGE my_pkg AS SUBTYPE my_real IS $IF DBMS_DB_VERSION.VERSION < 10 $THEN NUMBER; $ELSE BINARY_DOUBLE; $END
my_pi my_real; my_e my_real; END my_pkg;
--包體 CREATE OR REPLACE PACKAGE BODY my_pkg AS BEGIN $IF DBMS_DB_VERSION.VERSION < 10 $THEN my_pi := 3.14159265358979323846264338327950288420; my_e := 2.71828182845904523536028747135266249775; $ELSE my_pi := 3.14159265358979323846264338327950288420d; my_e := 2.71828182845904523536028747135266249775d; $END END my_pkg;
CREATE OR REPLACE PROCEDURE circle_area(radius my_pkg.my_real) IS my_area my_pkg.my_real; my_data_type VARCHAR2(30); BEGIN my_area := my_pkg.my_pi * (radius**2);
DBMS_OUTPUT.PUT_LINE ('半徑: ' || TO_CHAR(radius) || ' 面積: ' || TO_CHAR(my_area));
$IF $$my_debug $THEN SELECT DATA_TYPE INTO my_data_type FROM USER_ARGUMENTS WHERE OBJECT_NAME = 'CIRCLE_AREA' AND ARGUMENT_NAME = 'RADIUS';
DBMS_OUTPUT.PUT_LINE('RADIUS引數的資料型別為: ' || my_data_type); $END END;
--執行儲存過程2次, 修改環境變數,重新編譯儲存過程,再執行。 BEGIN circle_area(5);
END;
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1103464/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PLSQL Language Reference-PL/SQL語言基礎-條件編譯-條件編譯指令限制SQL編譯
- PLSQL Language Reference-PL/SQL語言基礎-條件編譯-獲取和列印編譯後的原始碼文字SQL編譯原始碼
- C語言 - 條件編譯C語言編譯
- Rust 條件編譯Rust編譯
- doxygen 宏定義/宏編譯/條件編譯/預處理/預編譯 不處理、忽略條件、分析所有條件、滿足所有條件的方法編譯
- Rust 交叉編譯與條件編譯總結Rust編譯
- uni-app 條件編譯APP編譯
- C語言的條件編譯#if, #elif, #else, #endif、#ifdef, #ifndefC語言編譯
- PLSQL Language Reference-PL/SQL概覽-PL/SQL語言基礎SQL
- .NET探索平臺條件編譯編譯
- Java條件編譯是什麼?Java編譯
- c++進階(一)C語言條件編譯及編譯預處理階段C++C語言編譯
- 「譯」編寫更好的 JavaScript 條件式和匹配條件的技巧JavaScript
- PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-宣告SQL
- 【C進階】22、條件編譯分析編譯
- go怎麼沒有條件編譯Go編譯
- 條件編譯符號與公佈編譯符號
- oracle 10g的條件編譯Oracle 10g編譯
- PLSQL Language Reference-PL/SQL語言基礎-表示式-BOOLEAN表示式SQLBoolean
- PLSQL Language Reference-PL/SQL語言基礎-表示式-短路計算SQL
- PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-字面量SQL
- Rust 在 cargo 中進行條件編譯RustCargo編譯
- 【譯】編寫更好JavaScript條件語句的5個技巧JavaScript
- PLSQL Language Referenc-PL/SQL控制語句-條件選擇語句-IF THEN ELSeIFSQL
- PLSQL Language Referenc-PL/SQL控制語句-條件選擇語句-IF THEN ELSESQL
- PLSQL Language Referenc-4PL/SQL控制語句-條件選擇語句-IF THENSQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-比較操作符SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-邏輯操作符SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-連線操作符SQL
- PLSQL Language Referenc-PL/SQL控制語句-條件選擇語句-搜尋CASESQL
- PLSQL Language Referenc-PL/SQL控制語句-條件選擇語句-簡單CASESQL
- 前端學習(2366):條件編譯跨端相容前端編譯跨端
- C語言學習第18篇---巨集定義與使用 / 條件編譯使用分析C語言編譯
- PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-識別符號引用SQL符號
- PLSQL Language Reference-PL/SQL語言基礎-表示式-PL/SQL表示式中的SQL函式SQL函式
- 條件編譯、多檔案程式設計、結構體編譯程式設計結構體
- 【Golang 基礎系列十】Go 語言 條件語句之ifGolang
- PLSQL Language Reference-PL/SQL語言基礎-表示式-操作符優先順序SQL