ORACLEFUNCTION函数中DETERMINISTIC测试-创新互联

如果函数经常对于上述情况产生确定的记录,可以在
   函数声明中用DETERMINISTIC,这样ORACLE会自动在内存中缓存这些记录集,如果不确定,
   产生的结果就会不确定了
          1,概念及含义
              1,语法
                  CREATE OR REPLACE FUNCTION SCHEMA.FUNTION_NAME
                  (ARGUMENT IN NOC0PY DATATYPE)
                  RETURN DATETYPE
                  DETERMINISTIC
                  IS
                  BEGIN
                  END;
               2,指定DETERMINISTIC用于,对于调用多次同一参数相同值的过程,返回相同的结果时
               3,如果你在基于函数的索引相关的表达式或者对REFRESH FAST及ENABLE QUERY REWRITE的物化视图相关的查询
                 ,必须要指定DETERMINISTIC关键字。
               4,如果以后变更了上述表达式的定义,必须手工重建物化视图或者基于函数的索引
               5,如果一个函数使用包变量,或者访问数据库的方能会影响函数的结果集,则不要用DETERMINISTIC
               6,使用DETERMINISTIC语句的语义规则,此处皆指是定义或声明而非使用
                     1,可以在最顶级的子程序中,指包中
                     2,可以在包规范即包级的子程序中,但不能在包体中;指包的子程序声明中
                     3,不能在一个私有子程序中(子程序:另一个子程序内部或一个包体内部),即包体或另一个子程序中的子程序
                     4,一个有DETERMINISTIC的子程序能调用另一个子程序,
                        不管被调用的子程序是否声明DETERMINISTIC
          2,示例
              1,CREATE OR REPLACE FUNCTION text_length(a CLOB)
                 RETURN NUMBER DETERMINISTIC IS
                 BEGIN
                    RETURN DBMS_LOB.GETLENGTH(a);
                 END;

网站名称:ORACLEFUNCTION函数中DETERMINISTIC测试-创新互联
网站URL:https://www.cdcxhl.com/article46/dsoohg.html

成都网站建设公司_创新互联,为您提供网站制作网站营销关键词优化外贸网站建设搜索引擎优化企业网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设