在Oracle 10g下,推断依赖性仅仅达到了对象级。也就是说存储过程訪问的对象一旦发生了变化。那么Oracle就会将存储过程置为INVALID状态。所以在为表做了DDL操作后。须要把存储过程又一次进行编译。

在Oracle 11g下,对依赖的推断更加细化,推断到了字段级。尽管有这么好的特性。但我还是建议对表做了DDL操作后,把存储过程再又一次编译一下。

Oracle 10g下:

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for 64-bit Windows: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

SQL> drop table TEST purge;

SQL> drop PROCEDURE P_TEST;

SQL> CREATE TABLE TEST(ID NUMBER);

SQL> CREATE OR REPLACE PROCEDURE P_TEST AS

      BEGIN

        INSERT INTO TEST (ID) VALUES (100);

      END;

      /

SQL> col OBJECT_NAME format a10;

SQL> col OBJECT_TYPE format a10;

SQL> col STATUS format a10;

SQL> SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTS WHERE OBJECT_NAME = 'P_TEST';

OBJECT_NAM OBJECT_TYP STATUS

---------- ---------- ----------

P_TEST     PROCEDURE  VALID

SQL> ALTER TABLE TEST ADD (NAME VARCHAR2(30));

SQL> SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTS WHERE OBJECT_NAME = 'P_TEST';

OBJECT_NAM OBJECT_TYP STATUS

---------- ---------- ----------

P_TEST     PROCEDURE  INVALID



Oracle 11g下:

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production



SQL> drop table TEST purge;

SQL> drop PROCEDURE P_TEST;

SQL> CREATE TABLE TEST(ID NUMBER);

SQL> CREATE OR REPLACE PROCEDURE P_TEST AS

      BEGIN

        INSERT INTO TEST (ID) VALUES (100);

      END;

      /



SQL> col OBJECT_NAME format a10;

SQL> col OBJECT_TYPE format a10;

SQL> col STATUS format a10;

SQL> SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTS WHERE OBJECT_NAME = 'P_TEST';

OBJECT_NAM OBJECT_TYP STATUS

---------- ---------- ----------

P_TEST     PROCEDURE  VALID

SQL> ALTER TABLE TEST ADD (NAME VARCHAR2(30));

SQL> SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTS WHERE OBJECT_NAME = 'P_TEST';

OBJECT_NAM OBJECT_TYP STATUS

---------- ---------- ----------

P_TEST     PROCEDURE  VALID

Oracle 11g对依赖的推断达到字段级的更多相关文章

  1. oracle 11g在大表中添加字段及默认值--加速

    今天遇到这个问题了.简单的增加语句,默认SQLPLUS执行,却会超时. 要增加客户端的TIMEOUT时间才可以解决.(感觉超过两三分钟,默认超时30秒) 另外, 也可以用两步操作(1,增加字段,2,修 ...

  2. Linux 6.x 下Oracle 11g R2 安装配置

    Oracle 11g R2 数据库安装硬件配置要求: 最小内存 1 GB of RAM 虚拟内存容量,这个oracle也有要求,不用担心此时的swap分区不够oracle的要求 .虚拟内存swap如何 ...

  3. Oracle 11g对大表中添加DEFAULT值的NOT NULL字段速度有大幅度的提升

    在一张2000万的表上增加了一个字段并字段一个默认值,执行这条语句(alter table tablename add new_col default ‘col’)一个小时没有执行完,问我有没有其他解 ...

  4. Oracle 11g行字段拼接WMSYS.WM_CONCAT问题Not A LOB

    Oracle 11g行字段拼接WMSYS.WM_CONCAT问题Not A LOB 一.问题出现 项目中的某个查询需要将表中某个字段不重复地拼接起来,百度得到该函数WMSYS.WM_CONCAT(字段 ...

  5. Oracle 11g新特性

    文章转自网络 Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(I ...

  6. CentOS Linux 系统 安装oracle 11g

    CentOS Linux 系统 安装oracle 11g 在Linux系统上安装oracle是比较麻烦,需要配置各种变量啥的,o(︶︿︶)o ,但是没办法,有些东西你总的去接触,而且接触理解的越早越深 ...

  7. ORACLE 11G R2 RAC classical install OGG12.1(LINUX) 经典抽取模式单项同步配置OGG12.1

    博文结构图如下: 一.环境描述以及注意事项 1.1 环境简介 IP 系统 Oracle版本 OGG版本 源端 172.16.10.16/36 RHEL6.5 oracle11204 12.1 目标端 ...

  8. Oracle 11g

    Oracle 11g 第一章  Oracle 11g数据库简介 1.1  认识Oracle11g Oracle 11g是Oracle 数据库最新的版本,目前已经被企业广泛的应用. 1.2  Oracl ...

  9. oracle 11g 数据库恢复技术 ---03 补充日志

    三 补充日志(supplemental logging) 补充日志是对重做记录中变更矢量的补充信息,增加了变更矢量记载的记录量.Oracle某些功能要求启用补充日志才能正常或更好的工作,比如logmi ...

随机推荐

  1. POJ 1166 The Clocks 高斯消元 + exgcd(纯属瞎搞)

    依据题意可构造出方程组.方程组的每一个方程格式均为:C1*x1 + C2*x2 + ...... + C9*x9 = sum + 4*ki; 高斯消元构造上三角矩阵,以最后一个一行为例: C*x9 = ...

  2. BAT面试题 - 找一个无序实数数组中的最大差值

    题目描写叙述: 一个无序的实数数组a[i].要求求里面大小相邻的实数的差的最大值.比方 double a[]={1,5,4,0.2,100} 这个无序的数组,相邻的数的最大差值为100-5=95. 题 ...

  3. HDU 2473 Junk-Mail Filter 并查集删除(FZU 2155盟国)

    http://acm.hdu.edu.cn/showproblem.php?pid=2473 http://acm.fzu.edu.cn/problem.php?pid=2155 题目大意: 编号0~ ...

  4. 图解UNIX的I/O模型

    版权声明:本文为博主原创文章,转载请注明出处: leehao.me https://blog.csdn.net/lihao21/article/details/51620374 一.简述 UNIX系统 ...

  5. 【BZOJ 2119】股市的预测

    [链接]h在这里写链接 [题意]     给你一个长度为n的数组a[]     设b[i] = a[i+1]-a[i];     然后让你在b[i]里面找ABA的形式.     这里B的长度要求为m; ...

  6. Snail—Hibernate各种异常

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXExNzkxNDIyMDE4/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  7. php实现变态跳台阶(记忆化递归)

    php实现变态跳台阶(记忆化递归) 一.总结 1.本题思路(分类讨论思路,注意初始值和边界值):第一步如果1,那剩下的就是jumpFloorII($number-1)(下面jumpFloorII以j表 ...

  8. POJ 2014 Flow Layout 模拟

    http://poj.org/problem?id=2014 嘻嘻2014要到啦,于是去做Prob.ID 为2014的题~~~~祝大家新年快乐~~ 题目大意: 给你一个最大宽度的矩形,要求把小矩形排放 ...

  9. jquery-12 jquery的ajax如何使用

    jquery-12 jquery的ajax如何使用 一.总结 一句话总结:就是$.get()和$.post()方法的使用,看参考手册就好,与php的交互. 1.删除元素的时候如何设置删除特效? ani ...

  10. BZOJ 1588 HNOI2002 营业额统计 裸Treap

    题目大意:...题目描写叙述不全看这里好了 给定一个序列 对于每一个元素我们定义该数的最小波动值为这个数与前面全部数的差中的最小值(第一个数的最小波动值为第一个数本身) 求最小波动值之和 找近期的数仅 ...