今回はSQL_TEXTを出力していますが、1000文字を超えるSQLは表示しきれません。その場合はSQL_FULLTEXTを見てください。ただしこちらもCLOBなので大きなプログラムは分轄出力しないといけません。
確認SQL
select s.SQL_ID,s.STATUS,s.SCHEMANAME,a.SQL_TEXT ,LAST_ACTIVE_TIME -- 動作開始時間 ,LAST_CALL_ET -- 実行し続けている秒数 from v$session s inner join v$sqlarea a on s.SQL_ID = a.SQL_ID where s.LAST_CALL_ET > 2 and s.SQL_ID is not null and s.STATUS = 'ACTIVE' order by LAST_CALL_ET ;
確認SQL実行例
SQL_ID STATUS SCHEMANAME SQL_TEXT LAST_ACTIVE_TIME LAST_CALL_ET
---------------- ------ ---------- ---------------------------------------- ------------------- ------------
1sz3j98yu28xh ACTIVE SOONI BEGIN DBMS_LOCK.SLEEP(50); END; 2019/06/30 16:51:43 13
7wtkucwc7h32r ACTIVE SYS BEGIN DBMS_LOCK.SLEEP(60); END; 2019/06/30 16:51:39 17
SQL>
SQL*Plus用
set lin 200 col sql_id for a16 col status for a6 col SCHEMANAME for a10 col SQL_TEXT for a40 col SQL_TEXT for a40