"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 लिखें और कर्सर वापस करें, या एक टेबल लौटाएं, पी>