ZKX's LAB

plsql跟踪表中数据更新记录

2021-03-19知识1

ms sql 数据库 搞一个数据跟踪记录表,如何设计? 最简单的办法就是 利用触发器利用 inserted 和 deleted 存储过程,但是只能记录修改时间,如果想记录修改人 就需要在程序登陆的时候 利用context_info 让操作员和 SPID绑定 在触发器中取出

 plsql跟踪表中数据更新记录

oracle中怎么获取表中数据最后更新时间 oracle查询表中数据行(row)上最后的DML时间第一种方式(块级跟踪):select ora_rowscn,dbms_rowid.ROWID_BLOCK_NUMBER(rowid)blockid,scn_to_timestamp(ora_rowscn)from hs_futures.fuentrust torder by scn_to_timestamp(ora_rowscn);dbms_rowid.ROWID_BLOCK_NUMBER(rowid):是为获取e799bee5baa6e4b893e5b19e31333337613762数据所在块的IDscn_to_timestamp(ora_rowscn):获取数据最所修改的时间数据发现变化后通过上面SQL语句可以查看到数据最后修改的时间,注意因为是同一个块上,所以这个块上只要有DML操作那么所有数据的scn都更新了,所以凡是跟这条记录在同一个块上数据获取到的ora_rowscn和scn_to_timestamp(ora_rowscn)两个值都发生了相应的变化。第二种方式(行级跟踪):create table hs_futures.fuentrust_test1 rowdependencies asselect*from hs_futures.fuentrust用以上语句创建一个基于ROWDEPENDENCIES模式的表,然后用第一种方法中的SQL去查询此表数据中的ora_rowscn,scn_to_timestamp(ora_rowscn)两个值,修改其中的某一条记录然后再去查询那个值发现发生变化的只是被修改那条记录的这两个值发生了变化,而在同一个块中没有被修改的。

怎样获取sql表数据的最后更新时间?第一种方式(块级跟踪):select ora_rowscn,dbms_rowid.ROWID_BLOCK_NUMBER(rowid)blockid,scn_to_timestamp(ora_rowscn)from hs_。

#plsql跟踪表中数据更新记录

随机阅读

qrcode
访问手机版