Hi,
das hier:
---
select open_curs,
osuser,
substr(machine,1,30) pc,
program
from sys.v_$session ses,
(select sid, count(*) open_curs
from sys.v_$open_cursor
group by sid) oc
where oc.sid=ses.sid
and open_curs > 100;
---
funtzt wunderbar im sql worksheet (oracle)
wenn ich jedoch ein view anlegen will, geht dem net... wieso??
thx
Was für eine Fehlermeldung bekommst Du?
Ich würd´ mal raten, daß da irgend wo ein Namenskonflikt auftaucht. Probier vielleicht mal, jedes Feld explizit mit table.field anzugeben und jedem _nochmal_ einen Alias, also irgend wie so:
select
ses.open_curs open_cursors,
oc.osuser os_users,
substr(ses.machine, 1,30) pc,
ses.program client_program
from
...
Es sei denn, daß ist wieder einmal so ein Feature, wo man auf irgend etwas keine View legen darf...
Probier sonst noch, das Ganze umzuschreiben, etwa so:
select
ses.open_curs,
ses.osuser,
substr(ses.machine,1,30) pc,
ses.program,
count(*) open_curs
from
sys.v_$session ses,
sys.v_$open_cursor oc
where
ses.sid = oc.sid
group by
ses.open_curs,
ses.osuser,
substr (ses.machine, 1, 30) pc,
ses.program
;
d.h. zuerst die beiden Tabellen zusammenführen und dann grupieren. Vielleicht mag Oracle die Subquery nicht (bezweifle ich aber).
Kann das Statement leider nicht ausprobieren. Und das letzte Mal, daß ich so richtig mit SQL gearbeitet habe ist auch schon wieder ein Jahr her :( , kann also für nix garantieren.
Mehr fällt mir im Augenblick leider dazu nicht ein...
@miss_f:
ich bekomm gar keine fehlermeldung, das ist ja das problem... es liegt definitiv am table v$session, da kann ich irgendwie nicht abfragen... :(
greetz & thanks
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.