Bonjour,

J'essaye de compiler une fonction qui prendrais en parametre le nom de la base. (je suis sous oracle9i)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
CREATE OR REPLACE FUNCTION UPTIME (v_base VARCHAR2 DEFAULT 'base9i') RETURN VARCHAR2 AS 
v_uptime_days NUMBER (4);
v_uptime_hours NUMBER (4,2);
BEGIN
  SELECT trunc(SYSDATE-logon_time,0) "Days", (SYSDATE-logon_time)*24 "Hours"
  INTO v_uptime_days, v_uptime_hours
  FROM   sys.v_$session@v_base
  WHERE  sid=1;
  WHILE v_uptime_hours >= 24
  LOOP
  v_uptime_hours := v_uptime_hours - 24;
  END LOOP;
  RETURN to_char(v_uptime_days) || ' Day(s) ' || v_uptime_hours || ' Hour(s)';
END;
Le soucis comme vous vous en douter est que il ne veux pas compiler car il ne trouve pas v_base

connaitriez vous un moyen d'executer ce genre de requetes (autres que de figer ne nom de la base?

Cordialement,
Vincent