में किसी इंडेक्स की जांच कैसे करें मैं एक उत्पाद के लिए एक स्कीमा अपग्रेड स्क्रिप्ट लिख रहा हूं जो ओरेकल डेटाबेस पर निर्भर करता है। एक क्षेत्र में, मुझे एक टेबल पर एक अनुक्रमणिका बनाने की आवश्यकता है - यदि वह अनुक्रमणिका पहले से मौजूद नहीं है। क्या इंडेक्स के अस्तित्व की जांच करने का कोई आसान तरीका है जिसे मैं ओरेकल स्क्रिप्ट में नाम जानता हूं?ओरेकल
यह एसक्यूएल सर्वर में इस के समान होगा: नहीं मौजूद है (का चयन करें * SYSINDEXES से जहां नाम = 'myIndex') // तब मेरे myIndex जहां INDEX_NAME user_indexes से
जब तक आप उन्हें उद्धृत न करें, डेटाबेस ऑब्जेक्ट्स (इंडेक्स सहित) को अपरकेस में संग्रहीत किया जाता है। तो यदि आप CREATE INDEX myIndex बनाते हैं, तो USER_INDEXES में इसे MYINDEX के रूप में संग्रहीत किया जाएगा। और ओरेकल (डिफ़ॉल्ट रूप से) केस असंवेदनशील मैचों नहीं करेगा। –
बस इस उत्तर के अतिरिक्त: यदि आपको यह जांचने की आवश्यकता है कि कोई अन्य स्कीमा में कोई अनुक्रमणिका मौजूद है, तो USER_INDEXES का उपयोग करने के बजाय ALL_INDEXES क्वेरी करें। USER_INDEXES की जांच करना "वैकल्पिक सत्र SET CURRENT_SCHEMA = XYZ" के साथ काम नहीं करता है, फिर भी आप वर्तमान में लॉग इन उपयोगकर्ता के लिए इंडेक्स से पूछेंगे। – SaschaM78