Oracle 最后一次更新时间(dba_objects)

文章目录

场景

  • 想知道 表、视图、存储过程等 最后一次更新的时间?

结论

Oracle 12c 官方文档 - all_objects

SELECT t.last_ddl_time, 
       t.*
  FROM dba_objects t
 WHERE t.owner = ''
   AND t.object_name = '';

 
 

请注意:

dab_objects、 all_objects、 user_objects: DDL 语句最后一个编译的时间
1. 对象进行了编译(如: create or replace)
2. 包含 grantrevoke 语句
3. 包含 truncate 语句

 
 

额外知识点之 truncate

  1. 数据库的表是由:段、区、块 组成
  2. truncate 相当于 “摧毁” 之前的 ‘段头’,生成一个新的 ‘段头’
    在 dba_objects 中对应的 data_object_id(会发生改变)

演示

CREATE TABLE scott.table_test (
  ID   NUMBER,
  NAME VARCHAR2(30)
);
-- 请注意:insert、update、delete 是 DML 语句,不会引起 last_ddl_time 变化
INSERT INTO scott.table_test(ID, NAME) VALUES(1, '瑶瑶');
INSERT INTO scott.table_test(ID, NAME) VALUES(2, '悠悠');
INSERT INTO scott.table_test(ID, NAME) VALUES(3, '倩倩');
COMMIT;

 
 

测试语句:

GRANT SELECT ON scott.table_test TO hr;
REVOKE SELECT ON scott.table_test FROM hr;
TRUNCATE TABLE scott.table_test;
SELECT t.last_ddl_time, 
       t.*
  FROM dba_objects t
 WHERE t.owner = 'SCOTT'
   AND t.object_name = 'TABLE_TEST';

 
 

测试结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值