Welcome 微信登录

首页 / 数据库 / MySQL / truncate操作导致DATA_OBJECT_ID改变

Oracle中一般情况下表的OBJECT_ID与DATA_OBJECT_ID是一致的。但在truncate后表达DATA_OBJECT_ID会发生改变。利用这一特性可以判断表是否发生过truncate操作。注:(DATABASE LINK,FUNCTION,PROCEDURE,SEQUENCE,VIEW)没有DATA_OBJECT_ID。Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as reportSQL> SELECT t.table_name, t.last_analyzed, t.num_rows
  2    FROM USER_TABLES t
  3   WHERE t.table_name = "T2";TABLE_NAME LAST_ANALYZED       NUM_ROWS
---------- --------------------------          ----------
T2         2011-04-04 16:56:17                    3--T2的 OBJECT_ID  与DATA_OBJECT_ID相同SQL> SELECT object_name, object_type, object_id, data_object_id
  2    FROM USER_OBJECTS
  3   WHERE object_name = "T2";OBJECT_NAM OBJECT_TYPE          OBJECT_ID  DATA_OBJECT_ID
---------- -------------------                ----------         -----------------------
T2           TABLE                              75567                             75567SQL> truncate table T2;
Table truncatedSQL>  analyze table t2 compute statistics;
Table analyzed-- 对表T2进行truncate后OBJECT_ID未发生改变,而DATA_OBJECT_ID由 75567 变为 76592SQL> SELECT object_name, object_type, object_id, data_object_id
  2    FROM USER_OBJECTS
  3   WHERE object_name = "T2";
OBJECT_NAM OBJECT_TYPE          OBJECT_ID       DATA_OBJECT_ID
----------         -------------------        ----------           --------------
T2                  TABLE                         75567             76592SQL>解决执行Oracle控制脚本时遇到的 “cat: /etc/oratab: 没有那个文件或目录”的问题Oracle 10g 中的定时任务job相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数