"मैंने जो देखा है, उसके अनुसार, कौन सी पंक्तियों को छोड़ना है, यह निर्धारित करने से पहले Oracle WHERE विधेय को लागू करता है।"
हां। यह एकमात्र संभव तरीका है। जब तक आप परिणाम सेट का निर्धारण नहीं कर लेते, तब तक आप किसी परिणामसेट से एक पंक्ति को नहीं छोड़ सकते।
उत्तर केवल SELECT कथन द्वारा लौटाई गई पंक्तियों की संख्या को सीमित नहीं करना है। आप अभी भी अनुकूलक को निर्देशित करने के लिए FIRST_ROWS_n संकेतों का उपयोग कर सकते हैं कि आप पूरे डेटा सेट को नहीं पकड़ेंगे।
SELECT को कॉल करने वाले सॉफ़्टवेयर को केवल पहली n पंक्तियों का चयन करना चाहिए। पीएल/एसक्यूएल में, यह होगा
DECLARE
CURSOR c_1 IS
SELECT /*+FIRST_ROWS_1*/ qt.ID
FROM QueueTest qt
WHERE Locked IS NULL
ORDER BY PRIORITY
FOR UPDATE SKIP LOCKED;
BEGIN
OPEN c_1;
FETCH c_1 into ....
IF c_1%FOUND THEN
...
END IF;
CLOSE c_1;
END;