जो डेटा आप चाहते हैं, वह "cols" मेटा-डेटा तालिका में है:
SELECT * FROM COLS WHERE COLUMN_NAME = 'id'
यह आपको उन तालिकाओं की एक सूची देगा जिनमें आपके इच्छित सभी कॉलम हैं:
select distinct
C1.TABLE_NAME
from
cols c1
inner join
cols c2
on C1.TABLE_NAME = C2.TABLE_NAME
inner join
cols c3
on C2.TABLE_NAME = C3.TABLE_NAME
inner join
cols c4
on C3.TABLE_NAME = C4.TABLE_NAME
inner join
tab t
on T.TNAME = C1.TABLE_NAME
where T.TABTYPE = 'TABLE' --could be 'VIEW' if you wanted
and upper(C1.COLUMN_NAME) like upper('%id%')
and upper(C2.COLUMN_NAME) like upper('%fname%')
and upper(C3.COLUMN_NAME) like upper('%lname%')
and upper(C4.COLUMN_NAME) like upper('%address%')
एक अलग स्कीमा में ऐसा करने के लिए, तालिका के सामने स्कीमा को निर्दिष्ट करें, जैसे कि
SELECT * FROM SCHEMA1.COLS WHERE COLUMN_NAME LIKE '%ID%';
यदि आप कई स्कीमा की खोजों को एक आउटपुट परिणाम में जोड़ना चाहते हैं, तो आप ऐसा कर सकते हैं:
SELECT DISTINCT
'SCHEMA1' AS SCHEMA_NAME
,TABLE_NAME
FROM SCHEMA1.COLS
WHERE COLUMN_NAME LIKE '%ID%'
UNION
SELECT DISTINCT
'SCHEMA2' AS SCHEMA_NAME
,TABLE_NAME
FROM SCHEMA2.COLS
WHERE COLUMN_NAME LIKE '%ID%'