Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल में सीक्वेंस क्या है?

ओरेकल में अनुक्रम क्या है

  • Oracle Sequence एक उपयोगकर्ता द्वारा बनाई गई वस्तु है जिसे अद्वितीय पूर्णांक उत्पन्न करने के लिए एकाधिक उपयोगकर्ताओं द्वारा साझा किया जा सकता है
  • अनुक्रमों का सबसे सामान्य उपयोग तालिका में प्राथमिक कुंजी स्तंभ उत्पन्न करना होगा।
  • अनुक्रम oracle आंतरिक दिनचर्या द्वारा उत्पन्न होता है, इसलिए हमें इसके बारे में चिंता करने की आवश्यकता नहीं है। यह tim3 को बचाएगा क्योंकि डेवलपर को अनुक्रम उत्पादन दिनचर्या उत्पन्न करने की आवश्यकता नहीं है
  • एक अनुक्रमिक संख्या जनरेटर, बढ़ाने या घटाने के लिए कॉन्फ़िगर किया जा सकता है
  • यह केवल डेटा शब्दकोश में मौजूद है, सीमित या दोहराने योग्य (चक्र) हो सकता है।
  • अनुक्रम बनाने के लिए हमें अनुक्रम विशेषाधिकार बनाने की आवश्यकता है

अनुक्रम बनाना

. का उपयोग करके किया जाता है
सीक्वेंस बनाएं

[शुरू करें]

[द्वारा वृद्धि]

[NO/MINVALUE]

[नहीं/MAXVALUE]

[नहीं/चक्र]

[नहीं/कैश];

प्रत्येक मान का विवरण

 

इसके साथ प्रारंभ करें यह अनुक्रम के प्रारंभिक मान को परिभाषित करता है (डिफ़ॉल्ट 1 ),
इनक्रीमेंट बाय यह वृद्धि या कमी के स्तर को परिभाषित करता है (डिफ़ॉल्ट 1 ),
MINVALUE यह घटते क्रम के लिए न्यूनतम मान को परिभाषित करता है
MAXVALUE यह बढ़ते क्रम के लिए उच्चतम मान को परिभाषित करता है
CYCLE यह परिभाषित करता है कि अनुक्रम स्वयं को दोहराएगा या नहीं
कैश यह मेमोरी में धारित अनुक्रम संख्याओं के ब्लॉक को परिभाषित करता है (डिफ़ॉल्ट 20 ), NOCACHE अनुक्रम द्वारा उत्पन्न प्रत्येक संख्या के लिए डेटा शब्दकोश को अद्यतन करने के लिए बाध्य करता है

उदाहरण

 

अनुक्रम बनाएं test_tech 1 के साथ प्रारंभ करें
1 से वृद्धि
अधिकतम मान 10000
चक्र
कैश 20;

अनुक्रम बनाएं test_tech1

1 से शुरू करें
1 से वृद्धि
अधिकतम मूल्य 4500000
चक्र
nocache;

 

अनुक्रमों का उपयोग कैसे करें

अनुक्रम का उपयोग करने के लिए बस 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','') DUAL से;

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 में, प्रत्येक उदाहरण कैशे मानों को संग्रहीत करता है

निम्नलिखित कारणों से कैशे का उपयोग करते समय हमें क्रम में अंतराल हो सकता है

  1. रोलबैक होता है
  2. सिस्टम क्रैश या इंस्टेंस क्रैश
  3. अनुक्रम का उपयोग किसी अन्य तालिका में किया जाता है

अनुक्रमों के लिए Oracle 12c में नई सुविधा है

सत्र क्रम

Oracle डेटाबेस 12C के साथ नए कीवर्ड SESSION, GLOBAL उपलब्ध हैं जिन्हें अनुक्रम निर्माण के दौरान निर्दिष्ट किया जा सकता है
सीक्वेंस बनाएं test_session_seq 1 सत्र द्वारा 1 वृद्धि के साथ प्रारंभ करें;
सीक्वेंस बनाएं test_global_seq 1 ग्लोबल द्वारा 1 वृद्धि के साथ प्रारंभ करें;

वैश्विक सत्र
मानक अनुक्रम बनाता है जिसे पिछली रिलीज़ में जाना जाता था। यह डिफ़ॉल्ट है। नया प्रकार का सत्र अनुक्रम बनाता है, जो एक विशेष प्रकार का अनुक्रम है जिसे विशेष रूप से सत्र दृश्यता वाली वैश्विक अस्थायी तालिकाओं के साथ उपयोग करने के लिए डिज़ाइन किया गया है। सत्र अनुक्रम केवल एक सत्र के भीतर अनुक्रम संख्याओं की एक अद्वितीय श्रेणी देता है, लेकिन सभी सत्रों में नहीं। एक और अंतर यह है कि सत्र क्रम स्थिर नहीं होते हैं। यदि कोई सत्र समाप्त हो जाता है, तो सत्र के दौरान एक्सेस किए गए सत्र अनुक्रमों की स्थिति भी बदल जाती है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक चुनिंदा वक्तव्य में चर घोषित करना और सेट करना

  2. पीएल/एसक्यूएल के माध्यम से ओरेकल निर्यात करने का प्रयास करने की तारीख 0000-00-00

  3. RAC VM का बैकअप कैसे लें

  4. Oracle डेटा माइनिंग (ODM) - स्थापना और स्थापना

  5. तारीखों के बीच के अंतर को भरने के लिए डुप्लीकेटिंग रिकॉर्ड