Try this out my friend:
 
select s.sid sid,
          c.sql_text sql_text,
          c.address address,
          ltrim(to_char(c.hash_value,'9999999999'),' ') hash_value,
          substrb('  ',1,2) execcur
    from v$open_cursor c,
           v$session  s
 where c.saddr = s.saddr
   and c.hash_value != s.sql_hash_value
   and s.sid in (THE_SID_U_ARE_INTERESTED_IN)
 union
 select s.sid sid,
           c.sql_text sql_text,
           c.address address, ltrim(to_char(c.hash_value,'9999999999'),' ') hash_value,
           substrb('* ',1,2) execcur
   from v$open_cursor c, v$session  s
 where c.saddr = s.saddr
   and c.hash_value = s.sql_hash_value
   and s.sid in (THE_SID_U_ARE_INTERESTED_IN);
 
The currently executing cursor will be the one with * in the execcur column.
 
HTH
 
Mark
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Chuan Zhang
Sent: Wednesday, June 06, 2001 08:25
To: Multiple recipients of list ORACLE-L
Subject: Re: Which SQL is executing

Hi, Sam,
 
 Thanks for your information.
 
To my understanding, the script you gave is for all the queries. There is still no way to figure out which query is running.
 
Chuan,
----- Original Message -----
Sent: Monday, June 04, 2001 5:00 PM
Subject: Re: Which SQL is executing

SELECT T.SQL_TEXT FROM V$SQLTEXT T,V$SESSION S 
WHERE  S.SQL_ADDRESS=T.ADDRESS ORDER BY T.PIECE;
 
Sam
----- Original Message -----
Sent: Monday, June 04, 2001 9:30 AM
Subject: Which SQL is executing

Hi All,
 
 
From v$open_cursor, I know every SQL  opened and parsed in one session. Is there any way to know which SQL is running. Or put another way, can all the SQLs in one session be sorted in timing order dynamically?
 
Any clue would be much appreciated.
 
Chuan

Reply via email to