当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle认证考试辅导:Oracle10g新特性选择性编译
发布时间:2010/3/15 16:21:39 来源:城市学习网 编辑:MOON
  Oracle10g中提供了一个十分方便开发人员的新特性选择性编译。即可以通过条件,只编译PL/SQL中的部分代码。如果你对C++很熟悉,那你会对这个特性感觉非常亲切,因为它和C++中的条件宏十分相似。 在9i的时候,开发人员将自己的调试加入到程序中,往往release之后都没有删掉,这些轻则影响可读性,严重的话会影响系统性能。有了这个特性后,这个问题就可以解决了。 下面举个简单的例子解释一下: 创建一个有条件宏的函数:
  1 SQL CREATE OR REPLACE FUNCTION F_TESTDEBUG2 RETURN NUMBER IS3 v_count number;4 BEGIN5 select count(*) into v_count from user_tables;67 $IF $$my_debug $THEN8 DBMS_OUTPUT.PUT_LINE(‘Tables number is: ‘v_count);9 $END1011 return v_count;12 END;13 /Function created
  激活debug(通过变量$$my_debug控制):
  SQL ALTER FUNCTION F_TESTDEBUG COMPILE PLSQL_CCFLAGS = ‘my_debug:TRUE‘ REUSE SETTINGS;Function altered
  运行函数:
  SQL set serveroutput on1 SQL declare2 v_res number;3 begin4 v_res := F_TESTDEBUG;5 end;6 /Tables number is: 22PL/SQL procedure successfully completed
  这时候,可以看到debug被打印出来了。 我们再去掉调试:
  SQL ALTER FUNCTION F_TESTDEBUG COMPILE PLSQL_CCFLAGS = ‘my_debug:FALSE‘ REUSE SETTINGS;Function altered
  执行函数:
  1 SQL declare2 v_res number;3 begin4 v_res := F_TESTDEBUG;5 end;6 /PL/SQL procedure successfully completed
  我们可以看到,调试没有了。 当然,我们在实际release的时候就不需要用alter了(除非现场调试),可以在release脚本的头部定义好my_debug变量就OK了。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved