I don't have one that looks for overlapping jobs but this one looks for long running. The prompt is # of days. I defaulted mine to 1 day but can change it. It gives you anything that was longer than 15 minutes.
SELECT DISTINCT A.PRCSINSTANCE, A.PRCSTYPE, A.PRCSNAME, A.JOBNAMESRC, A.RUNCNTLID, TO_CHAR(CAST((A.BEGINDTTM) AS TIMESTAMP),'YYYY-MM-DD-HH24.MI.SS.FF'), TO_CHAR(CAST((A.ENDDTTM) AS TIMESTAMP),'YYYY-MM-DD-HH24.MI.SS.FF'), SUBSTR(ENDDTTM - BEGINDTTM,12,8), A.RUNSTATUSDESCR
FROM PS_PMN_PRCSLIST A
WHERE ( A.ENDDTTM > SYSDATE - :1
AND SUBSTR(ENDDTTM - BEGINDTTM,12,8) > '00:15:00'
AND A.PRCSTYPE <> 'PSJob')
ORDER BY 8 DESC
Expression by Jeffrie Brooks:

This one you put in a process name it and gives you everything that's in the process monitor.
SELECT DISTINCT A.PRCSINSTANCE, A.PRCSNAME, A.PRCSTYPE, A.OPRID, A.RUNCNTLID, TO_CHAR(CAST((A.BEGINDTTM) AS TIMESTAMP),'YYYY-MM-DD-HH24.MI.SS.FF'), TO_CHAR(CAST((A.ENDDTTM) AS TIMESTAMP),'YYYY-MM-DD-HH24.MI.SS.FF'), SUBSTR(ENDDTTM - BEGINDTTM,12,8), A.RUNSTATUSDESCR, MAX( C.MESSAGE_PARM)
FROM ((PS_PMN_PRCSLIST A LEFT OUTER JOIN PS_MESSAGE_LOG B ON B.PROCESS_INSTANCE = A.PRCSINSTANCE AND B.PROGRAM_NAME IN ('ROWPROC','psaemain') ) LEFT OUTER JOIN PS_MESSAGE_LOGPARM C ON B.PROCESS_INSTANCE = C.PROCESS_INSTANCE AND B.MESSAGE_SEQ = C.MESSAGE_SEQ )
WHERE ( A.PRCSNAME = :1)
GROUP BY A.PRCSINSTANCE, A.PRCSNAME, A.PRCSTYPE, A.OPRID, A.RUNCNTLID, A.BEGINDTTM, A.ENDDTTM, SUBSTR(ENDDTTM - BEGINDTTM,12,8), A.RUNSTATUSDESCR
ORDER BY 1
This one puts in a beginning process instance number and an ending process instance number and dumps out everything in between (I use this one to get my mack daddy job run times, it's a job of jobs):
SELECT DISTINCT A.PRCSINSTANCE, A.PRCSJOBSEQ, A.PRCSTYPE, A.PRCSNAME, A.JOBNAMESRC, A.RUNCNTLID, TO_CHAR(CAST((A.BEGINDTTM) AS TIMESTAMP),'YYYY-MM-DD-HH24.MI.SS.FF'), TO_CHAR(CAST((A.ENDDTTM) AS TIMESTAMP),'YYYY-MM-DD-HH24.MI.SS.FF'), SUBSTR(ENDDTTM - BEGINDTTM,12,8), A.RUNSTATUSDESCR, MAX( C.MESSAGE_PARM)
FROM ((PS_PMN_PRCSLIST A LEFT OUTER JOIN PS_MESSAGE_LOG B ON B.PROCESS_INSTANCE = A.PRCSINSTANCE AND B.PROGRAM_NAME = 'ROWPROC' ) LEFT OUTER JOIN PS_MESSAGE_LOGPARM C ON B.PROCESS_INSTANCE = C.PROCESS_INSTANCE AND B.MESSAGE_SEQ = C.MESSAGE_SEQ )
WHERE ( A.PRCSINSTANCE BETWEEN :1 AND :2)
GROUP BY A.PRCSINSTANCE, A.PRCSJOBSEQ, A.PRCSTYPE, A.PRCSNAME, A.JOBNAMESRC, A.RUNCNTLID, A.BEGINDTTM, A.ENDDTTM, SUBSTR(ENDDTTM - BEGINDTTM,12,8), A.RUNSTATUSDESCR
ORDER BY 1
Thanks!
Dana Pawlowicz
Business Systems Analyst Sr - ERP
Business Enterprise Systems and Technologies
Digital Technology Solutions
University of Cincinnati
51 Goodman Dr.
Cincinnati, Oh 45221