当前执行的可以提取出来,如果是以前的操作,可以从归档日志来提取分析。
不过很麻烦,如果数据表等很重要,可以使用ORACLE的审计功能,来监控用户对数据库的
操作

解决方案 »

  1.   

    oracle有审计功能,具体请查资料
      

  2.   

    connect system/manager
    select * from v$sqltext;
      

  3.   

    获得当前台正在发出的sql语句select user_name,sql_text from v$open_cursor where sid in (select sid from (select sid,serial#,username,program from v$session where status='ACTIVE'))
      

  4.   

    谢谢 qgbin()   LGQDUCKY(飘)  jiezhi(風依舊) 
    ---------------
    我刚接触oracle数据库,所以对oracle的帮助系统也不太熟悉,手头上的oracle书也没有提到审计或归档日志的内容,我现在在看“Product README Files”,不知道Product README Files里能找到这些内容吗?因为用
    select * from v$sqltext;

    select user_name,sql_text from v$open_cursor where sid in (select sid from (select sid,serial#,username,program from v$session where status='ACTIVE'))
    查询到的信息会把一个包含子查询的语句分成多句,而我这边的语句都有很多字段且包含很多子查询,这样的话截获出来的语句很难还原成执行的语句。
      

  5.   

    select *  from v$sqltext           
              order by address desc,hash_value desc,piece就可以了。