ओरेकल में अनुक्रम क्या है
- Oracle Sequence एक उपयोगकर्ता द्वारा बनाई गई वस्तु है जिसे अद्वितीय पूर्णांक उत्पन्न करने के लिए एकाधिक उपयोगकर्ताओं द्वारा साझा किया जा सकता है
- अनुक्रमों का सबसे सामान्य उपयोग तालिका में प्राथमिक कुंजी स्तंभ उत्पन्न करना होगा।
- अनुक्रम oracle आंतरिक दिनचर्या द्वारा उत्पन्न होता है, इसलिए हमें इसके बारे में चिंता करने की आवश्यकता नहीं है। यह tim3 को बचाएगा क्योंकि डेवलपर को अनुक्रम उत्पादन दिनचर्या उत्पन्न करने की आवश्यकता नहीं है
- एक अनुक्रमिक संख्या जनरेटर, बढ़ाने या घटाने के लिए कॉन्फ़िगर किया जा सकता है
- यह केवल डेटा शब्दकोश में मौजूद है, सीमित या दोहराने योग्य (चक्र) हो सकता है।
- अनुक्रम बनाने के लिए हमें अनुक्रम विशेषाधिकार बनाने की आवश्यकता है
अनुक्रम बनाना
. का उपयोग करके किया जाता हैसीक्वेंस बनाएं
[शुरू करें] [द्वारा वृद्धि] [NO/MINVALUE] [नहीं/MAXVALUE] [नहीं/चक्र] [नहीं/कैश];
|
प्रत्येक मान का विवरण
इसके साथ प्रारंभ करें | यह अनुक्रम के प्रारंभिक मान को परिभाषित करता है (डिफ़ॉल्ट 1 ), |
इनक्रीमेंट बाय | यह वृद्धि या कमी के स्तर को परिभाषित करता है (डिफ़ॉल्ट 1 ), |
MINVALUE | यह घटते क्रम के लिए न्यूनतम मान को परिभाषित करता है |
MAXVALUE | यह बढ़ते क्रम के लिए उच्चतम मान को परिभाषित करता है |
CYCLE | यह परिभाषित करता है कि अनुक्रम स्वयं को दोहराएगा या नहीं |
कैश | यह मेमोरी में धारित अनुक्रम संख्याओं के ब्लॉक को परिभाषित करता है (डिफ़ॉल्ट 20 ), NOCACHE अनुक्रम द्वारा उत्पन्न प्रत्येक संख्या के लिए डेटा शब्दकोश को अद्यतन करने के लिए बाध्य करता है |
उदाहरण
अनुक्रम बनाएं test_tech 1 के साथ प्रारंभ करें 1 से वृद्धि अधिकतम मान 10000 चक्र कैश 20;
अनुक्रम बनाएं test_tech1
1 से शुरू करें |
अनुक्रमों का उपयोग कैसे करें
अनुक्रम का उपयोग करने के लिए बस CURRVAL और NEXTVAL छद्म कॉलम का उपयोग करें
अगला छद्म स्तंभ
इसका उपयोग निर्दिष्ट अनुक्रम की क्रमिक अनुक्रम संख्या उत्पन्न करने के लिए किया जाता है
CURVAL छद्म स्तंभ
यह वह क्रम रखता है जिसे उपयोगकर्ता ने अभी-अभी जनरेट किया है
DUAL से TEST_TECH.NEXTVAL चुनें;
DUAL से TEST_TECH.CURVAL चुनें; DUAL से TEST_TECH.NEXTVAL चुनें; |
सीक्वेंस कैसे संशोधित करें
हम परिवर्तन अनुक्रम का उपयोग करके अनुक्रमों को संशोधित कर सकते हैं।
SQL> ALTER SEQUENCE tech_test1 50 तक वृद्धि; |
परिवर्तन केवल अनुक्रम के भविष्य के उपयोग को प्रभावित करते हैं।
आपको उस क्रम का स्वामी होना चाहिए या विशेषाधिकार बदलना चाहिए
हम विकल्प के साथ शुरुआत नहीं बदल सकते। इसके लिए अनुक्रम को छोड़ना होगा और फिर से बनाना होगा
अनुक्रम परिवर्तन भी मान्य हैं
सीक्वेंस कैसे छोड़ें
DROP अनुक्रम कमांड का उपयोग करके एक दृश्य को छोड़ना किया जाता है।
ड्रॉप सीक्वेंस test_tech ; |
अनुक्रम डेटा देखने के लिए शब्दकोश दृश्य
अनुक्रम विवरण को USER_SEQUENCES, ALL_ SEQUENCES या DBA_ SEQUENCES को क्वेरी करके शब्दकोश से पूछताछ की जा सकती है। व्यू की तीन श्रेणियां हैं
USER_% | इस दृश्य में केवल उपयोगकर्ता के स्वामित्व वाली वस्तुओं की जानकारी होती है
उदाहरण USER_TABLES,USER_TAB_COLS |
ALL-% | इस दृश्य में उन वस्तुओं की जानकारी होती है जिन्हें उपयोगकर्ता डेटाबेस में एक्सेस कर सकता है।
उदाहरण ALL_TABLES,ALL_TAB_COLS |
DBA_% | इस दृश्य में सिस्टम में सभी ऑब्जेक्ट्स की जानकारी होती है और ये प्रतिबंधित दृश्य हैं जो उस उपयोगकर्ता के लिए सुलभ हैं जिसकी DBA भूमिका है
उदाहरण DBA_TABLES,DBA_TAB_COLS |
अनुक्रम जानकारी के बारे में DBA_% बार देखा गया | अनुक्रम जानकारी के बारे में ALL_% बार देखा गया | अनुक्रम जानकारी के बारे में USER_% बार देखा गया | |
अनुक्रमों के बारे में देखें जानकारी | dba_sequences | सभी_ क्रम | उपयोगकर्ता_ क्रम |
वर्तमान उपयोग के स्वामित्व वाले सभी अनुक्रमों को सूचीबद्ध करने के लिए
user_sequences से अनुक्रम_नाम चुनें;
डेटाबेस में सभी अनुक्रमों को सूचीबद्ध करने के लिए:
dba_sequences से स्वामी, अनुक्रम_नाम चुनें;
वर्तमान उपयोगकर्ता के लिए सुलभ अनुक्रमों को सूचीबद्ध करने के लिए:
all_sequences में से सीक्वेंस_नाम चुनें
सीक्वेंस के बारे में सारी जानकारी कैसे निर्धारित करें?
अनुक्रम_नाम, न्यूनतम_मान, अधिकतम_मान, वृद्धि_द्वारा, अंतिम_संख्या
DBA_SEQUENCES से
जहां OWNER ='<मालिक_नाम>'
और सीक्वेंस_NAME ='
ऑरैकल अनुक्रम के वर्तमान मान को बिना बढ़ाए कैसे प्राप्त करें
यदि कोई कैश निर्दिष्ट नहीं है तो last_number कॉलम अगला उपलब्ध अनुक्रम संख्या प्रदर्शित करता है
last_number चुनें
उपयोगकर्ता_अनुक्रमों से जहां अनुक्रम_नाम ='<अनुक्रम_नाम>'; |
डिक्शनरी व्यूज के ढेर से गुजरे बिना Oracle डेटाबेस से सीक्वेंस डेफिनिशन (DDL स्टेटमेंट) कैसे निकालें
सिंटैक्स:
SQL> सेट लंबा 1000 SQL> सेट पेजसाइज 0चुनें DBMS_METADATA.GET_DDL('SEQUENCE','
|
Oracle अनुक्रम में LASTVALUE मान कैसे सेट करें
ALTER SEQUENCE tech_seq_name 250 तक वृद्धि;
दोहरे से tech_seq_name.nextval चुनें; ALTER SEQUENCE tech_seq_name 1 से बढ़ाएँ; |
Oracle में अनुक्रम कैसे रीसेट करें
कई तरीके हैं।
ए) हम अनुक्रम को छोड़ सकते हैं और फिर से बना सकते हैं। लेकिन यह सभी आश्रित वस्तुओं (ट्रिगर/संग्रहीत कार्यविधियों आदि) को अमान्य कर देता है
b) हम इन आसान चरणों द्वारा रीसेट कर सकते हैं
चरण 1:अनुक्रम का नवीनतम मान ढूंढें
दोहरे से tech_seq_name.nextval चुनें; चरण 2:नवीनतम मान के ऋणात्मक मान की वृद्धि के साथ अनुक्रम को बदलें ALTER SEQUENCE tech_seq_name द्वारा वृद्धि -<नवीनतम मान> न्यूनतम मान 0; चरण 3 इसे वापस शून्य पर सेट करने के लिए nextval करें दोहरे से tech_seq_name.nextval चुनें; चरण 4:वेतन वृद्धि को वापस 1 में बदलें ALTER SEQUENCE tech_seq_name 1 से बढ़ाएँ; उदाहरण दोहरे से tech_seq_name.nextval चुनें; —————————————— 250 ALTER SEQUENCE tech_seq_name -250 तक वृद्धि; दोहरे से tech_seq_name.nextval चुनें; ALTER SEQUENCE tech_seq_name 1 से बढ़ाएँ; |
आप इस लिंक पर और अधिक जानकारी प्राप्त कर सकते हैं
अनुक्रम कैसे रीसेट करें
अनुक्रमों को संचित करने का प्रभाव
फ़ेच प्रदर्शन को बेहतर बनाने के उद्देश्य से अनुक्रम को कैश किया जाता है। RAC में, प्रत्येक उदाहरण कैशे मानों को संग्रहीत करता है
निम्नलिखित कारणों से कैशे का उपयोग करते समय हमें क्रम में अंतराल हो सकता है
- रोलबैक होता है
- सिस्टम क्रैश या इंस्टेंस क्रैश
- अनुक्रम का उपयोग किसी अन्य तालिका में किया जाता है
अनुक्रमों के लिए Oracle 12c में नई सुविधा है
सत्र क्रम
Oracle डेटाबेस 12C के साथ नए कीवर्ड SESSION, GLOBAL उपलब्ध हैं जिन्हें अनुक्रम निर्माण के दौरान निर्दिष्ट किया जा सकता हैसीक्वेंस बनाएं test_session_seq 1 सत्र द्वारा 1 वृद्धि के साथ प्रारंभ करें;
सीक्वेंस बनाएं test_global_seq 1 ग्लोबल द्वारा 1 वृद्धि के साथ प्रारंभ करें;
वैश्विक | सत्र |
मानक अनुक्रम बनाता है जिसे पिछली रिलीज़ में जाना जाता था। यह डिफ़ॉल्ट है। | नया प्रकार का सत्र अनुक्रम बनाता है, जो एक विशेष प्रकार का अनुक्रम है जिसे विशेष रूप से सत्र दृश्यता वाली वैश्विक अस्थायी तालिकाओं के साथ उपयोग करने के लिए डिज़ाइन किया गया है। सत्र अनुक्रम केवल एक सत्र के भीतर अनुक्रम संख्याओं की एक अद्वितीय श्रेणी देता है, लेकिन सभी सत्रों में नहीं। एक और अंतर यह है कि सत्र क्रम स्थिर नहीं होते हैं। यदि कोई सत्र समाप्त हो जाता है, तो सत्र के दौरान एक्सेस किए गए सत्र अनुक्रमों की स्थिति भी बदल जाती है। |