2011-10-20 10 views
5

हाल ही में, मैं मर्ज स्टेटमेंट के अंदर बढ़ते क्रम मूल्यों से संबंधित एक मुद्दे पर आया था।ओरेकल मर्ज स्टेटमेंट्स में अनुक्रम का व्यवहार

मेर्ज इंसर्ट क्लॉज, कॉलम में से एक को पॉप्युलेट करने के अनुक्रम तक पहुंच रहा है। मैंने ध्यान दिया कि, इससे कोई फ़र्क नहीं पड़ता कि कितनी पंक्तियां वास्तव में सम्मिलन के लिए योग्य हैं, अनुक्रम स्रोत चयन खंड में रिकॉर्ड्स की कुल संख्या के लिए बढ़ता जा रहा है।

ऐसा क्यों हो रहा है?

मैं Oracle 10gR2 पर काम कर रहा हूँ

धन्यवाद,

+0

मैं इस सवाल का जवाब मिल गया है उल्लेख के लिए। ओरेकल दस्तावेज के अनुसार, अनुक्रम प्रत्येक विलय रिकॉर्ड के लिए बढ़ाया जाएगा और इससे कोई फर्क नहीं पड़ता कि वास्तव में कितने रिकॉर्ड डाले गए हैं। – Incognito

+0

[लिंक] (http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/pseudocolumns002.htm#sthref809) – Incognito

+3

आपको टिप्पणियों को एक उत्तर में बदलना चाहिए और फिर इसे स्वीकार करना चाहिए। आपको अपने उत्तरों को स्वीकार करने की अनुमति है (आपको इसके लिए बैज भी मिल सकता है)। स्वीकृत उत्तर एसओ का अंतिम खेल है। – APC

उत्तर

2

मैं इस सवाल का जवाब मिल गया है। ओरेकल दस्तावेज के अनुसार, अनुक्रम प्रत्येक विलय रिकॉर्ड के लिए बढ़ाया जाएगा और इससे कोई फर्क नहीं पड़ता कि वास्तव में कितने रिकॉर्ड डाले गए हैं।

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/pseudocolumns002.htm#sthref809

2

आप इस

CREATE OR REPLACE 
FUNCTION seq_nextval_on_demand (p_seq_name IN VARCHAR2) 
    RETURN NUMBER 
IS 
    v_seq_val NUMBER; 
BEGIN 
    EXECUTE IMMEDIATE 'select ' || p_seq_name || '.nextval from dual' 
    INTO v_seq_val; 

    RETURN v_seq_val; 
END seq_nextval_on_demand; 

तर्क समारोह है की तरह मूल्य बढ़ाने के लिए एक समारोह का उपयोग करके इस हल कर सकते हैं कहा जाता है केवल जब "सम्मिलित" मर्ज बयान की शाखा वास्तव में प्रयोग किया जाता है।

आगे इस http://alex-td.blogspot.in/2012/07/sequences-nextval-in-merge-operator.html

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^