有,
select c.username,c.sid,
a.sql_text from v$sql a,v$open_cursor b,v$session c where c.saddr = b.saddr 
and a.address = c.sql_address and c.sql_hash_value = a.hash_value order by c.sid

解决方案 »

  1.   

    谢谢老兄的回答,不过好像不行啊,我看不到程序运行后最新的sql语句阿,请问在v$sql这几个表中存放的是sql历史纪录吗?怎么只有几条啊,而且first_load_time这个字段显示的时间并不是最新的阿
      

  2.   

    v$sql是sql缓存(share_pool)中的数据,可能被替换出去。最后的sql在v$open_cursor中。使用alter session set sql_trace=true可以在trace文件中看到所有执行过的sql
      

  3.   

    我的oracle是入门级,sql/plus 中不是有个L(list)吗?
    各位提到的v$sql ,v$open_cursor 在那里可以看到.????????
      

  4.   

    pl/sql develop-->tools-->session
      

  5.   

    pl/sql develop-->tools-->session
      

  6.   

    监控当前数据库谁在运行什么SQL语句 SELECT osuser, username, sql_text from v$session a, v$sqltext b 
    where a.sql_address =b.address order by address, piece;