2013-10-25 7 views
7

क्या से PL/SQL में अंतर है:PLSQL: VARBIABLE: = SEQUENCE.NEXTVAL या SELECT SEQUENCE.NEXTVAL दोहरी से VARIABLE में?

CREATE OR REPLACE FUNCTION WBAR_TEST_1 RETURN NUMBER IS 
    LN_TMP NUMBER; 
BEGIN 
    LN_TMP := SOME_SEQUENCE.NEXTVAL; 
    RETURN LN_TMP; 
END WBAR_TEST_1; 

और

CREATE OR REPLACE FUNCTION WBAR_TEST_2 RETURN NUMBER IS 
    LN_TMP NUMBER; 
BEGIN 
    SELECT SOME_SEQUENCE.NEXTVAL INTO LN_TMP FROM DUAL; 
    RETURN LN_TMP; 
END WBAR_TEST_2; 

मुझे लगता है कि दूसरा दृष्टिकोण इतिहास प्रयोजनों के लिए ही केवल है।

उत्तर

11

पहला वाला ओरेकल 11 जी के साथ उपलब्ध हो गया था, इससे पहले कि आपको SELECT seq_name.nextVal FROM dual होना था। अंतर क्या है? खैर, मेरी राय में पहला पढ़ने के लिए आसान है।

और क्या है, टिम हॉल ने अपनी साइट पर लिखा है कि, दस्तावेज़ीकरण के अनुसार, पहला (नया) दृष्टिकोण प्रदर्शन में सुधार कर सकता है। उन्होंने कुछ परीक्षण किए, लेकिन अंतर मामूली था।

टिम हॉल की साइट पर और अधिक पढ़ें: Sequences and NEXTVAL in PL/SQL

दूसरी ओर, के रूप में यहां कहा गया है About using NEXTVAL in PL/SQL - Oracle 11g, nextVal मूल्य प्राप्त करने में कठिनाई का अंतर्निहित कार्यान्वयन, तो वास्तव में कोई अंतर नहीं होना चाहिए नहीं बदला गया है।

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