information_schema.COLUMNS
. के लिए Oracle समकक्ष है USER_TAB_COLS
वर्तमान उपयोगकर्ता के स्वामित्व वाली तालिकाओं के लिए, ALL_TAB_COLS
या DBA_TAB_COLS
सभी उपयोगकर्ताओं के स्वामित्व वाली तालिकाओं के लिए।
टेबलस्पेस एक स्कीमा के बराबर नहीं है, न ही आपको टेबलस्पेस नाम प्रदान करने की आवश्यकता है।
यदि आप ALL_TAB_COLS
क्वेरी करना चाहते हैं तो स्कीमा/उपयोगकर्ता नाम प्रदान करना उपयोगी होगा या DBA_TAB_COLS
किसी विशिष्ट उपयोगकर्ता के स्वामित्व वाली तालिकाओं के स्तंभों के लिए। आपके मामले में, मुझे लगता है कि क्वेरी कुछ इस तरह दिखेगी:
String sqlStr= "
SELECT column_name
FROM all_tab_cols
WHERE table_name = 'USERS'
AND owner = '" +_db+ "'
AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"
ध्यान दें कि इस दृष्टिकोण से, आप SQL इंजेक्शन का जोखिम उठाते हैं।
संपादित करें: तालिका और कॉलम नामों को अपरकेस किया क्योंकि ये आमतौर पर Oracle में अपरकेस होते हैं; वे केवल निचले- या मिश्रित मामले हैं यदि उनके चारों ओर दोहरे उद्धरण चिह्नों के साथ बनाए गए हैं।