Como você pode mostrar o SQL que está atualmente em execução em um oracle db?
Informações adicionais que seriam úteis incluiriam usuário, identificação da sessão etc.
A maioria das informações está disponível na sessão v $ ... e o Texto SQL pode ser obtido em v $ sql ou v $ sqltext_with_newlines ...
Aqui está uma consulta que eu costumo usar que formata SQL de bordo, com a maior execução no topo.
-- In Flight SQL
SELECT nvl(ses.username,'ORACLE PROC')||' ('||ses.sid||')' USERNAME,
SID,
MACHINE,
REPLACE(SQL.SQL_TEXT,CHR(10),'') STMT,
ltrim(to_char(floor(SES.LAST_CALL_ET/3600), '09')) || ':'
|| ltrim(to_char(floor(mod(SES.LAST_CALL_ET, 3600)/60), '09')) || ':'
|| ltrim(to_char(mod(SES.LAST_CALL_ET, 60), '09')) RUNT
FROM V$SESSION SES,
V$SQLtext_with_newlines SQL
where SES.STATUS = 'ACTIVE'
and SES.USERNAME is not null
and SES.SQL_ADDRESS = SQL.ADDRESS
and SES.SQL_HASH_VALUE = SQL.HASH_VALUE
and Ses.AUDSID <> userenv('SESSIONID')
order by runt desc, 1,sql.piece;
Boa resposta encontrada aqui .
Execute o seguinte sql:
Se a saída estiver ilegível, altere o LINESIZE (tire daqui ):
Se o sql acima não funcionar, pode ser necessário efetuar login como sysdba:
fonte