2011-03-04 18 views
6

में सभी तालिकाओं के सभी कॉलम में विशिष्ट मान खोजना चाहता हूं क्या ओरेकल में किसी विशेष मूल्य के लिए प्रत्येक तालिका के प्रत्येक फ़ील्ड को खोजना संभव है।मैं ऑरैकल 11 जी

मैं किसी भी प्रक्रिया का उपयोग कर के बिना यह क्या करना चाहते हैं ..

हम इसे क्वेरी के साथ क्या कर सकते हैं?

+1

संभावित डुप्लिकेट [एक विशिष्ट मूल्य (ओरेकल) के लिए सभी टेबल्स में सभी फ़ील्ड खोजें] (http://stackoverflow.com/questions/208493/search-all-fields-in-all-tables-for-a- विशिष्ट-मान-ओरेकल) –

+0

plz – Royson

+0

फिर भी एक शिकार की जाँच करें। लेकिन अगर आप chage पिछले 'जहां cnt> = 0' 'cnt> 0' के लिए, यह एक त्रुटि देता है। कि पर काबू पाने के लिए, बस एक बाहरी क्वेरी से संपूर्ण क्वेरी लपेट, इस तरह: चयन x * (QUERY के ऊपर) से जहां x.cnt> 0। –

उत्तर

12

आप हालांकि यह थोड़ा घुमावदार है किसी एक क्वेरी के साथ ऐसा कर सकते हैं। इस क्वेरी स्ट्रिंग 'JONES'

select table_name, 
     column_name 
    from(select table_name, 
       column_name, 
       to_number(
       extractvalue(
        xmltype(
        dbms_xmlgen.getxml(
         'select count(*) c from ' || table_name || 
         ' where to_char(' || column_name || ') = ''JONES''' 
        ) 
        ), 
        'ROWSET/ROW/C' 
       ) 
       ) cnt 
      from (select utc.*, rownum 
        from user_tab_columns utc 
       where data_type in ('CHAR', 'VARCHAR2'))) 
where cnt >= 0 

ध्यान दें कि यह एक अनुकूलित किसी एक क्वेरी के साथ count the rows in every table को लॉरेंट श्नाइडर की क्वेरी का संस्करण है के लिए वर्तमान स्कीमा में सभी CHAR और VARCHAR2 कॉलम खोज करेंगे।

+0

वर्क्स 10g भी पर एक आकर्षण की तरह मेरी राय में मेरे संपादन .. –

संबंधित मुद्दे