♣ 题目 部分
在Oracle中,ORA_ROWSCN函数的作用是什么?
♣ 答案部分
对于每一行数据,ORA_ROWSCN返回每一行最近被修改的大概时间,可用于查询表最后一次被执行DML操作的时间。由于Oracle通过事务提交对行所在数据块来进行SCN(System Change Number,系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,它是系统中维持数据的一致性和顺序恢复的重要标志)的跟踪,所以,它不精确。可以通过在创建表时使用行级别的依赖跟踪来获得一个更加精确的SCN。
在对视图进行查询时,不能使用ORA_ROWSCN函数,但对于视图的基表是可以使用ORA_ROWSCN函数的,也能在UPDATE或DELETE语句的WHERE子句中使用ORA_ROWSCN函数。ORA_ROWSCN虽然不能用于闪回查询,但是可以用闪回版本查询来代替ORA_ROWSCN。ORA_ROWSCN也不能用于外部表。
ORA_ROWSCN函数的使用示例如下所示:
1SYS@lhrdb> CREATE TABLE AA (COL VARCHAR2(255));
2Table created.
3SYS@lhrdb> INSERT INTO AA (COL) VALUES ('1');
41 row created.
5SYS@lhrdb> INSERT INTO AA (COL) VALUES ('2');
61 row created.
7SYS@lhrdb> COMMIT;
8Commit complete.
9SYS@lhrdb> SELECT COL,TO_CHAR(ORA_ROWSCN),TO_CHAR(SCN_TO_TIMESTAMP(ORA_ROWSCN),'YYYY-MM-DD HH24:MI:SS') CHR_DATE FROM AA;
10COL TO_CHAR(ORA_ROWSCN) CHR_DATE
11-------- ----------------------------- -------------------
121 5038627 2016-08-17 16:38:30
132 5038627 2016-08-17 16:38:30
本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
---------------优质麦课------------
详细内容可以添加麦老师微信或QQ私聊。
About Me:小麦苗
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
本文分享自微信公众号 - DB宝(lhrdba)。
如有侵权,请联系 support@oschina.cn 删除。