Я знаю, как узнать, какие запросы я выполняю с помощью OSUSER, но у меня возникают проблемы с настройкой логики c для разработки поля истекшего времени, и я мог бы использовать некоторую помощь. Вот что я смотрел:
СОЗДАТЬ ИЛИ ЗАМЕНИТЬ
MONITOR_ACTIVE_QUERIES VIEW AS
SELECT
USERNAME
, SCHEMANAME
, OSUSER
, MACHINE
, PROGRAM
, SID
, SERIAL#
, TO_CHAR(SYSDATE, 'MM-DD-YYYY HH24:MI:SS') AS CurrentTime
, FIRST_LOAD_TIME AS LoadTime
--, USER_IO_WAIT_TIME << not really sure what this is.
, SQL_TEXT
FROM V$SESSION a JOIN V$SQL b
ON a.SQL_ADDRESS = b.ADDRESS
WHERE a.OSUSER IN ('<USER1>', '<USER2>','<USER3>')
AND a.STATUS = 'ACTIVE'
Я хочу сделать что-то, где я могу взять логику c CurrentTime - LoadTime для вычисления RunTime, но продолжайте сталкиваться с проблемами. Это похоже на тип данных.
Я пробовал это для CurrentTime: TO_DATE ((
SELECT MM || '-' || DD || '-' || YYYY || ' ' || HH24 || ':' || MI || ':' || SS
FROM (
SELECT
EXTRACT(MONTH FROM SYSTIMESTAMP) AS MM
, EXTRACT(DAY FROM SYSTIMESTAMP) AS DD
, EXTRACT(YEAR FROM SYSTIMESTAMP) AS YYYY
, EXTRACT(HOUR FROM SYSTIMESTAMP) AS HH24
, EXTRACT(MINUTE FROM SYSTIMESTAMP) AS MI
, ROUND(EXTRACT(SECOND FROM SYSTIMESTAMP),0) AS SS
FROM DUAL)),'MM-DD-YYYY HH24:MI:SS') AS CurrentTime
И это для LoadTime:
SUBSTR(FIRST_LOAD_TIME,6,5) || '-' || SUBSTR(FIRST_LOAD_TIME,0,4) || ' ' || SUBSTR(FIRST_LOAD_TIME,12,8) AS LoadTime
Я даже пытался быть умным с TO_DATE и функции TO_CHAR, но я все еще не могу понять это. У кого-нибудь есть какие-нибудь умные идеи?