COLUMN sid FORMAT 999
COLUMN serial# FORMAT 9999999
COLUMN machine FORMAT A30
COLUMN progress_pct FORMAT 99999999.00
COLUMN elapsed FORMAT A10
COLUMN remaining FORMAT A10

SELECT S.SID || ',' || S.SERIAL#|| CASE WHEN S.INST_ID IS NOT NULL THEN ',@' || S.INST_ID END  AS "SID/SERIAL",       
       SUBSTR(S.USERNAME,1,10)||DECODE(S.USERNAME,'SYS',SUBSTR(NVL2(S.MODULE,' [',NULL)||UPPER(S.MODULE),1,6)||NVL2(S.MODULE,']',NULL)) AS USERNAME,       
       S.SQL_ID,       
       substr(DECODE(TARGET_DESC, NULL, DECODE(TARGET, NULL, OPNAME, CONCAT(OPNAME, CONCAT(' - ', TARGET))), DECODE(TARGET, NULL, CONCAT(OPNAME, CONCAT(' : ',TARGET_DESC)), CONCAT(OPNAME, CONCAT(' : ', CONCAT(TARGET_DESC, CONCAT(' - ',TARGET)))))),1,50) "OPERATION", TO_CHAR(sl.START_TIME, 'DD/MM/YYYY HH24:MI:SS') STARTED,       
       TO_CHAR(TRUNC(ELAPSED_SECONDS/3600) , 'FM000') || ':' ||       TO_CHAR(TRUNC(MOD(ELAPSED_SECONDS, 3600)/60), 'FM00') || ':' ||       TO_CHAR(MOD(MOD(ELAPSED_SECONDS, 3600), 60) , 'FM00') ELAPSED,       
       TO_CHAR(TRUNC(TIME_REMAINING/3600) , 'FM000') || ':' ||       TO_CHAR(TRUNC(MOD(TIME_REMAINING, 3600)/60), 'FM00') || ':' ||       TO_CHAR(MOD(MOD(TIME_REMAINING, 3600), 60) , 'FM00') ESTIMATED,       
       TO_CHAR(TOTALWORK, 'FM9,999,999,990') TOTAL, 
       TO_CHAR(SOFAR, 'FM9,999,999,990') DONE,       
       TO_CHAR(SOFAR / TOTALWORK * 100, '990.99') "% DONE" ,       
       TO_CHAR(TIME_REMAINING/(24*3600)+SYSDATE,'DD/MM HH24:MI') FINISH_TIME
  FROM GV$SESSION_LONGOPS SL, GV$SESSION S, GV$PROCESS P
WHERE SL.SID= S.SID 
AND SL.SERIAL#=S.SERIAL#
and sl.INST_ID = s.INST_ID
AND (SL.SOFAR/SL.TOTALWORK)*100 < 100AND SL.TOTALWORK > 0AND S.PADDR = P.ADDR
and s.INST_ID = p.INST_ID
order by S.SQL_ID||SOFAR||S.SID||S.INST_ID desc , ELAPSED;

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *