Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle के लिए संपूर्ण स्कीमा के सभी क्षेत्रों में दिए गए स्ट्रिंग की खोज करें

"ALL_TAB_COLUMNS "एक सिस्टेबल है, सभी टेबल कॉलम डेटा प्रकार आदि हैं।

"USER_TAB_COLUMNS "एक सिस्टेबल है, सभी टेबल कॉलम डेटा प्रकार आदि हैं (जो मालिक वर्तमान उपयोगकर्ता है)। (धन्यवाद रेने)

एक उदाहरण:

 SET SERVEROUTPUT ON SIZE 100000 -- maybe you have a lot of table and columns

    DECLARE
      matches INTEGER;
    BEGIN
      FOR columns IN (SELECT table_name, column_name FROM user_tab_columns where data_type = 'VARCHAR2') LOOP

        EXECUTE IMMEDIATE
          'SELECT COUNT(*) FROM '||t.table_name||' WHERE instr('||t.column_name||' , :1) > 0'
          INTO matches
          USING 'What you search';

        IF matches > 0 THEN
          dbms_output.put_line( t.table_name ||' '||t.column_name||' '||matches );
        END IF;

      END LOOP;

    END;
    /

यह क्वेरी table_name '' column_name '' आउटपुट करेगी और गिनती होगी, यदि आपके पास स्टैंडआर्ट कॉलम और टेबल नाम हैं, तो आप क्वेरी को IF कॉलम> 0 के रूप में बदल सकते हैं, फिर लूप में एक क्वेरी UNION लिखें और कर्सर वापस करें, या एक टेबल लौटाएं,

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-24408:अद्वितीय सर्वर समूह नाम उत्पन्न नहीं कर सका

  2. क्या Oracle 11g SQL में एक उपश्रेणी को उपनाम देने का कोई तरीका है?

  3. लुकअप और ग्रुपबाय के साथ जुड़ें

  4. बाएँ बाहरी अशक्त मानों के साथ जुड़ते हैं

  5. प्रत्येक खाते के लिए नवीनतम अनुबंध ढूँढना