मैं ऐसे क्लाइंट के साथ काम कर रहा हूं जो ओरेकल में लगभग 1=1
के साथ अपने सभी WHERE खंडों को शुरू करता है। मेरी अज्ञानता को क्षमा करें, लेकिन क्या यह नो-ऑप नहीं है? क्या इस उपयोग के कोई नकारात्मक परिणाम हैं?ओरेकल में, एसक्यूएल क्वेरी का WHERE क्लॉज 1 = 1 उपयोगी के साथ शुरू कर रहा है?
यहाँ एक झाड़ी उदाहरण है:
SELECT gpz.zname
,gpp.pname
FROM table1 gpp INNER JOIN table2 gpz ON gpz.p_id = gpp.p_id
WHERE 1=1
AND gpp.active = 1
AND gpz.active = 1
आलस्य के लिए +1, एक या दो पंक्तियों द्वारा PL/SQL सरल बनाने और डेटाबेस पर इस तरह के एसक्यूएल को inflicting बहुत खराब है। बहुत बुरा अगर किसी कारण से उन्हें कर्सर_शियरिंग = फोर्स सेट करने की आवश्यकता है - सुनिश्चित नहीं है लेकिन मुझे लगता है कि सीबीओ को तब "WHERE: 1 =: 2 और ..." के साथ सामना करना होगा और तदनुसार इसे अनुकूलित करें! पता लगाने के लिए दिलचस्प हो ... –
मुझे इस मामले में संदेह था। इस क्लाइंट में वास्तव में इस तरह के गतिशील प्रश्न भी हैं। वे वास्तव में आलसी हैं :) – Blanthor
@ जेफरीकेम्प [टी-एसक्यूएल 1 = 1 प्रदर्शन हिट] (http://stackoverflow.com/q/1049512) के अनुसार, डीबीएमएस इस पैटर्न का उपयोग करके प्रदर्शन हिट नहीं लेता है। –