DBA Text Search

Description
Categories: Enginatics
Repository: Github
Full text search through database source code objects such as packages, procedures, functions, triggers etc.
The search can also be done using regular expressions.
To retrieve incorrect custom code such as a frequent performance issue calling the fnd_concurrent\.wait_for_request\s function with a zero interval time, for example, use parameter 'Multi Line Regex search' with the following valu ... 
Full text search through database source code objects such as packages, procedures, functions, triggers etc.
The search can also be done using regular expressions.
To retrieve incorrect custom code such as a frequent performance issue calling the fnd_concurrent\.wait_for_request\s function with a zero interval time, for example, use parameter 'Multi Line Regex search' with the following value: fnd_concurrent\.wait_for_request\s*\(\s*request_id\s*=>\s*\w+\s*,\s*interval\s*=>\s*0\s*,
   more
select ds.* from (
select
ds.owner,
ds.type,
ds.name,
ds.line,
ds.text,
&multi_line_text
null multi_line_text
from
dba_source ds
where
1=1
) ds
where
2=2
order by
ds.name,
ds.line
Parameter NameSQL textValidation
Code Text contains
lower(ds.text) like '%'||lower(:search_text)||'%'
Char
Multi Line Regex search
regexp_like(ds.multi_line_text,:multi_line_search,'i')
Char
Cote Text Regexp search
grw
Char
Multi Line window size
select
'case when sum(lengthb(ds.text)) over (partition by ds.owner, ds.type, ds.name order by ds.line rows between '||x.level_||' preceding and current row)<4000 then '||case when x.level2<0 then 'lag' else 'lead' end||'(ds.text,'||abs(x.level2)||') over (partition by ds.owner, ds.type, ds.name order by ds.line) end||' multi_line_text
from
(select level-1 level_, level-:line_window/2 level2 from dual connect by level<:line_window) x
LOV
Object Name starts with
ds.name like upper(:object_name)||'%'
Char
FND Message Text
ds.text like '%'''||(select fnm.message_name from fnd_new_messages fnm where fnm.message_text=:message_text and rownum=1)||'''%'
LOV
Object Type
ds.type=:object_type
LOV
Schema
ds.owner=:owner
LOV
Line Number From
ds.line>=:line_number_from
Number
Line Number To
ds.line<=:line_number_to
Number