如何知道oracle数据库中某段时间内,哪些表被修改了!

我修改某个程序后,所有记录都会存放在表中,但是表太多,我不懂是哪个。现在我要知道,我的操作,导致哪些表被修改了???可以利用pl/sql,请用直接、有效的方法帮我!

不是很清楚你的问题和要求,

    修改程序后, 你说的所有记录都存放在表中,是指所有对表的操作,还是仅跟你修改的程序相关的表操作

    如果仅表示你修改的某个程序,相关的数量较多的表被修改, 你的要求是否要查到那些已经被修改的表的信息.


 (如果该程序可以重新执行, 可以在程序的前与后,对该会话增加SQL_TRACE, 就可以从生成的trace文件中知道你的程序究竟对哪些表作了修改

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-13
select sql_text, last_active_time from v$sqlarea where last_active_time >= to_date('2014-01-10 9:00:00','yyyy-mm-dd hh24:mi:ss')
order by last_active_time desc
第2个回答  2014-01-12
可以使用logminer挖掘重做日志,或者启用oracle的审计功能。追问

详细一点,审计功能没有用过!详细步骤~~~

追答

你是要现在就查,还是防止以后发生同样的情况,保证能够查的到?

第3个回答  2014-01-13
开审计吧。可以针对单个表,也可以针对整个用户 或者数据库。 关键字“oracle audit”

如何知道oracle数据库中某段时间内,哪些表被修改了!
如果仅表示你修改的某个程序,相关的数量较多的表被修改, 你的要求是否要查到那些已经被修改的表的信息.(如果该程序可以重新执行, 可以在程序的前与后,对该会话增加SQL_TRACE, 就可以从生成的trace文件中知道你的程序究竟对哪些表作了修改

如何在oracle数据库中查找近期被修改的表
1.使LOGMINER使用当前数据库的数据字典(OPEN状态、只用于跟踪DML操作)exec dbms_logmnr.start_logmnr(options => dbms_logmnr.dict_from_online_catalog)exec dbms_logmnr.start_logmnr(dictfilename=>'\/u01\/tanyunlin.log',options =>dbms_logmnr.ddl_dict_tracking)2.无限制条件,即用数据字典文件对...

oracle数据库怎么判断某个时间在一段时间之内
用to_char函数即可。如emp表中数据如下:要查询hiredate的日期为1981年1月1日到1981年5月1日之间的数据,可用如下语句:select * from emp where to_char(hiredate,'yyyy-mm-dd') between '1981-01-01' and '1981-05-01';查询结果:

如何查看数据库数据表的修改记录 oracle
如何查看数据库数据表的修改记录 oracle 1. 用 sys 用户登录 Oracle 2. 创建记录用户登录信息的表 CREATE TABLE LOG$INFORMATION (ID NUMBER(10),USERNAME VARCHAR2(30),LOGINTIME DATE,TERMINAL VARCHAR2(50),IPADRESS VARCHAR2(20),OSUSER VARCHAR2(30),MACHINE VARCHAR2(64),PROGRAM VARCHAR2(64)...

如何查询oracle数据库的操作记录?
select * from v$sql 即可。如果报错找不到v$sql,一般是权限问题,换sysdba就肯定能查到。但要注意的是“隐式sql”,很多sql语句是调用执行的,(比如,存储过程中对dbms包的调用,再如执行create 语句所触发的对系统表空间、数据字典的修改等等。),这些语句同样会展现在v$sql中。还有其它与sql历史...

在oracle中如何查看谁删了一个表格,是昨天或前天删的
Oracle 数据库的所有更改都记录在日志中,从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,因为原始的日志信息我们根本无法看懂,Oracle8i后续版本中自带了LogMiner,而LogMiner就是让我们看懂日志信息的工具,通过这个工具可以:查明数据库的逻辑更改,侦察并更正用户的误操作,执行...

oracle 怎么查看数据是何时修改的
回答:看看rudo log日志, 看了楼主的补偿问题,这个功能数据库本身是查不到的。从表结构设计上来实现吧,加个历史表。或者冲正历史记录等方法。

Oracle数据库查询某段时间内时间段的数据
select * from 表名 where to_date(ip_date,'yyyy.mm.dd') between to_date('20190204','yyyymmdd') and to_date('20190209','yyyymmdd') and substr(ip_time,12,8) between '00:00:00' and '08:00:00'

如何查询用户修改oracle数据库中的数据
1. 用 sys 用户登录 Oracle 2. 创建记录用户登录信息的表 CREATE TABLE LOG$INFORMATION (ID NUMBER(10),USERNAME VARCHAR2(30),LOGINTIME DATE,TERMINAL VARCHAR2(50),IPADRESS VARCHAR2(20),OSUSER VARCHAR2(30),MACHINE VARCHAR2(64),PROGRAM VARCHAR2(64),SID NUMBER,SERIAL# ...

急!急!急!Oracle 数据库的一个字段每天凌晨2点多会定时被一个存储过程...
或者是 某个 job 的 存储过程, 调用了 rbt_admin_browsecat 如果你知道 问题大约发生在 每天凌晨2点多.那么你可以先去看看 dba_jobs 视图去看看。 看看有什么 job 是 2点多执行的。然后再看看, 这个时间里面, 都有哪些存储过程被执行了。然后去看看, 这些存储过程里面, 有谁调用了 rbt_...

相似回答