1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
CREATE OR REPLACE
FUNCTION UPTIME (v_base IN VARCHAR2) RETURN VARCHAR2 AS
v_uptime_days NUMBER (4);
v_uptime_hours NUMBER (4,2);
v_sql VARCHAR2(800);
BEGIN
v_sql := 'SELECT trunc(SYSDATE-logon_time,0) "Days", (SYSDATE-logon_time)*24 "Hours"' ||
' INTO :1, :2' ||
' FROM sys.v_$session@' || v_base ||
' WHERE sid=1';
-- return v_sql;
EXECUTE IMMEDIATE v_sql INTO v_uptime_days, v_uptime_hours;
WHILE v_uptime_hours >= 24
LOOP
v_uptime_hours := v_uptime_hours - 24;
END LOOP;
RETURN v_uptime_days || ' Day(s) ' || v_uptime_hours || ' Hour(s)';
END; |
Partager