Ich vermute, Sie möchten nur ein paar Spalten von V$SESSION und die SQL-Anweisung von V$SQL abrufen. Angenommen, Sie möchten die Hintergrundprozesse ausschließen, die Oracle selbst ausführt
SELECT sess.process, sess.status, sess.username, sess.schemaname, sql.sql_text
FROM v$session sess,
v$sql sql
WHERE sql.sql_id(+) = sess.sql_id
AND sess.type = 'USER'
Der äußere Join dient dazu, die Sitzungen zu behandeln, die derzeit nicht aktiv sind, vorausgesetzt, Sie möchten diese. Sie könnten auch die sql_fulltext-Spalte von V$SQL erhalten, die die vollständige SQL-Anweisung anstelle der ersten 1000 Zeichen enthält, aber das ist ein CLOB und daher wahrscheinlich etwas komplizierter zu handhaben.
Realistischerweise möchten Sie sich wahrscheinlich alles ansehen, was in V$SESSION verfügbar ist, da Sie wahrscheinlich viel mehr Informationen erhalten können, als SP_WHO bereitstellt.