本帖最后由 YuccaWei 于 2009-10-26 09:56:31 编辑

解决方案 »

  1.   


      sqlplus '/as sysdba'  在执行上面那个SQL!
      或是下载PL/SQL DEV直接把SQL拷贝运行!
      

  2.   

    我也有 PL SQL ,工具里面有个事件监视器,不知道怎么用啊
      

  3.   

    这个应该就可以了吧?我试了下,可以查询自己刚刚查询过的语句的。你再试试看,例如,
     select  sql_text,  osuser,  machine,  terminal,  program  
      from  v$sqlarea,  v$session  
      where  (address  =  prev_sql_addr  or  address  =  sql_address)
    and aql_test like '%AAAAAAAAA%' 
      

  4.   

    试试
    select * from v$sql a where parsing_schema_name='USERNAME' and service='sidname' --and action=''
    order by last_load_time desc
      

  5.   

    回 lengyunfei006:使用 Sql_test like '%AAAAAAAAA%' 这种方式不可行,因为前提是我不知道它对那个表进行了操作。回wildwave:我用你的语句稍微改了下,执行 select sql_text from v$sql ,只能捕捉到在plSQL内执行的语句。我在客户给的旧系统上跑的一个捕捉到。
      

  6.   

    请问一下 address  =  prev_sql_addr  or  address  =  sql_address
    prev_sql_addr  和 sql_address分别代表什么意思呀?我刚查了下文档里的v$sql,对address定义如下
    ADDRESS RAW(4 | 8) Address of the handle to the parent for this cursor 
      

  7.   

    回楼上:俺也不懂啊 执行select PREV_SQL_ADDR,sql_address from v$session
    结果如下
      

  8.   

    select sql_text from v$sql
    使用java通过JDBC执行的SQL语句是可以捕捉到的,
    不知道你的系统是用什么实现的,
    还有可能是你查询的时候条件不对,应该是
    select * from v$sql where parsing_schema_name='xxxx'
           order by last_load_time desc
      

  9.   

    oracle提供动态视图记录用户执行过的sql 你可以查询v$sql视图 这个应该就是你需要的东西。
      

  10.   

    我查了下 意思大概如下
    SQL_ADDRESS 
    RAW(4 | 8) Used with SQL_HASH_VALUE to identify the SQL statement that is currently being executed 
    SQL_HASH_VALUE 
    NUMBER Used with SQL_ADDRESS to identify the SQL statement that is currently being executed 
    PREV_SQL_ADDR 
    RAW(4 | 8) Used with PREV_HASH_VALUE to identify the last SQL statement executed 
    PREV_HASH_VALUE 
    NUMBER Used with SQL_HASH_VALUE to identify the last SQL statement executed 
      

  11.   

    谢谢 大家,目前应该算是找到合适的方法了
    select sql_text from v$sql order by last_load_time desc
    小结:之前使用 select * from v$sql 总是提示 a Query with lob's 需要oci8模式,但oci7模式被使用。 现在把* 用查询的栏位替换就可以查了。
    而且之前没有让结果排序,所以没找到哪个是我刚执行过的sql.