PL/SQL中的条件编译(Conditional Compilation)

 

PL/SQL中的条件编译(Conditional Compilation)

条件编译可以依据编译指示符来选择要编译的代码。比如:可以有开发时,在代码中插出调试、跟踪信息;在发布时,指定不同的编译指示符,生成不含调试、跟踪信息的代码。


★条件编译如何工作?

☆条件编译的控制标记(Control Token)
$if $then $else $elsif $end $error

☆条件编译的选择指示符(Selection Directives)
形式为:

$IF boolean_static_expression $THEN text
[ $ELSIF boolean_static_expression $THEN text ]
[ $ELSE text ]
$END


其中boolean_static_expression必须为BOOLEAN型的常量表达式。

☆条件编译的错误指示符(Error Directives)
形式为:

$error varchar2_static_expression $end



其中varchar2_static_expression必须为varchar2型的常量。

☆条件编译的询问指示符(Inquiry Directives)
形式为:

inquiry_directive ::= $id



询问指示符可以是预定义(Predefined Inquiry Directive)的,也可以是用户定义(User Defined Directive)的。
查询顺序:
从plsql_ccflags参数中从右往左找,如找到,则停止查找。
从预定义的查询指示符中查找,如找到,则停止查找。

☆预定义的询问指示符(Predefined Inquiry Directives)
预定义的询问指示符包括:

plsql_ccflags
plsql_optimize_level
plsql_code_type
plsql_warnings
plsql_debug
nls_length_semantics

 

$$plsql_line表示当前的代码行
$$plsql_unit表示当前的编译的单元名称

☆在条件编译中,使用静态表达式(Static Expressions)
静态变量包括BOOLEAN型,PLS_INTEGER型,及VARCHAR2型。

☆设置PLSQL_CCFLAGS初始化参数

alter session set plsql_ccflags = 'c1:v1,c2:v2,...,cn:vn';


☆使用DBMS_DB_VERSION包常量
可以检测当前的数据据VERSION及RELEASE。

★条件编译示例
☆使用条件编译为不同数据库版本指定代码
☆使用DBMS_PREPROCESSOR打印或获取预处理后的源代码

★条件编译限制

参考资料:
b14261.PLSQL User's Guide and Reference.Oracle 10g
Conditional Compilation
b14258.PLSQL Packages and Types Reference.Oracle 10g
DBMS_DB_VERSION
DBMS_PREPROCESSOR
PLSQL_CCFLAGS
PLSQL高级应用之条件编译

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值