यह 12c में आसान हो जाता है, जहां आप इसका उपयोग कर सकते हैं
select *
from all_views v
where lower(v.text_vc) like '%abc%';
यह मानता है कि आप जिस टेक्स्ट स्ट्रिंग की तलाश कर रहे हैं वह पहले 4000 वर्णों में है। आपके पास रिपोर्ट में कोई भी दृश्य शामिल हो सकता है जहां text_length
चेतावनी के साथ> 4000 है।
पुराने संस्करणों में (या 4000 वर्ण प्रतिबंध से बचने के लिए), आप इस तरह एक PL/SQL लूप आज़मा सकते हैं:
begin
dbms_output.put_line('Owner View name');
dbms_output.put_line('------------------------------ -------------------------------');
for r in (
select v.owner, v.view_name, v.text
from all_views v
where v.owner <> 'SYS'
)
loop
if lower(r.text) like '%abc%' then
dbms_output.put_line(rpad(r.owner,31) || r.view_name);
end if;
end loop;
end;
PL/SQL परोक्ष रूप से SQL LONG
को रूपांतरित करता है 32K PL/SQL स्ट्रिंग का मान।
(12.2.0.1.0 में मेरे परीक्षणों में, यह ORA-06502: PL/SQL: numeric or value error
के साथ विफल रहा। select
. पर कथन जब मेरे कर्सर में SYS.DBA_SCHEDULER_RUNNING_JOBS
शामिल था या SYS."_user_stat"
, भले ही लंबे टेक्स्ट वाले अन्य दृश्यों को सफलतापूर्वक प्रबंधित किया गया हो, और मुझे यकीन नहीं है कि क्यों। इसमें कुछ समस्या हो सकती है जो मुझे दिखाई नहीं दे रही है।)