1) direct path reads cannot bypass v$sql. I don't even know what that would mean??
a query that uses direct path reads will be in v$sql like any other query would be.
2) and most programmers would code on many lines...
You should learn about lag and lead :)
ops$tkyte%ORA11GR2> create or replace procedure p
2 as
3 begin
4 update
5 t
6 set
7 username
8 =
9 5;
10 end;
11 /
Procedure created.
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> select owner, name, line
2 from (
3 select owner, name, line,
4 lag(text,3) over (partition by owner, name, type order by line) ||
5 lag(text,2) over (partition by owner, name, type order by line) ||
6 lag(text,1) over (partition by owner, name, type order by line) ||
7 text ||
8 lead(text,1) over (partition by owner, name, type order by line) ||
9 lead(text,2) over (partition by owner, name, type order by line) ||
10 lead(text,3) over (partition by owner, name, type order by line) txt
11 from dba_source
12 where owner = 'OPS$TKYTE'
13 )
14 where txt like '%update%t%set%username%=%'
15 /
OWNER NAME LINE
------------------------------ ------------------------------ ----------
OPS$TKYTE P 5
OPS$TKYTE P 6
OPS$TKYTE P 7