ITPub博客

首页 > 数据库 > Oracle > oracle 10g的条件编译

oracle 10g的条件编译

原创 Oracle 作者:jidongzheng 时间:2008-07-29 14:45:30 0 删除 编辑

很早就看了oracle10g的存储过程支持条件编译。但一直都无测试,今天测试下,发现要注意的地方还真不少。

以下为测试代码:

create or replace procedure pro_test_condistion_compile
as
begin
dbms_output.put_line('============================');
$if $$my_condition = 1 $then
dbms_output.put_line('my_condition is :1');
$else
dbms_output.put_line('my_condition is not :1');
$end
dbms_output.put_line('============================');

dbms_output.put_line('============================');
$if $$my_conditionII = 1 $then
dbms_output.put_line('$$my_conditionII is :1');
$else
dbms_output.put_line('$$my_conditionII is not :1');
$end
dbms_output.put_line('============================');


end;

alter session set PLSQL_CCFLAGS = 'my_condition:0' ;

alter procedure pro_test_condistion_compile compile;

或者:

ALTER PROCEDURE pro_test_condistion_compile COMPILE
PLSQL_CCFLAGS = 'current_user_type:0'
REUSE SETTINGS
/

alter procedure pro_test_condistion_compile compile PLSQL_CCFLAGS = 'my_condition:1 ,my_conditionII:1 ' ;

需要注意的地方:

1。它的写法,除了添加$,$$外,还没有;。这个要注意。

2。指定编译参数后,只对编译有影响,一旦编译完成了,存储过程的内容也就确定了。

3。如果需要重新指定编译条件值,就得重新编译。

[@more@]ora

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/197458/viewspace-1008026/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 增强的 COMMIT
请登录后发表评论 登录
全部评论
  • 博文量
    152
  • 访问量
    724077