Team,
Idle here refers to a connection in SQL*Plus that either is not used to do anything or to some connection in SQL*Plus that runs an UPDATE on some big table on the server and has no bits to transfer between server and client until the UPDATE is finished. Having an big update going on, then the connection would be waiting for an event to complete - perhaps db file scattered read/direct path read/direct path write/log file switch etc - in that case will that be in IDLE status?
Here is a test case for that.
before the update starts teh session is 'inactive' status.
demo@ORA12C> select sid,status
2 from v$session
3 where sid = 20 ;
SID STATUS
---------- --------
20 INACTIVE
while the update in progress, it is active.
demo@ORA12C> @sid
SESSION_ID
----------
20
demo@ORA12C> set timing on
demo@ORA12C> update big_table set owner = lower(owner);
montioring from another session shows this.
demo@ORA12C> select sid,status,event
2 from v$session
3 where sid = 20 ;
SID STATUS EVENT
---------- -------- -------------------------------
20 ACTIVE db file scattered read
demo@ORA12C>