Oracle PL / SQL डेटा प्रकार: बूलियन, संख्या, दिनांक (उदाहरण)

विषय - सूची:

Anonim

PL / SQL डेटाटिप्स क्या है?

एक डेटा प्रकार विशिष्ट भंडारण प्रारूप और सीमा बाधाओं के साथ जुड़ा हुआ है। Oracle में, प्रत्येक मान या स्थिरांक को डेटा प्रकार के साथ दिया जाता है।

मूल रूप से, यह परिभाषित करता है कि डेटा भंडारण और प्रसंस्करण के दौरान ओरेकल द्वारा डेटा को कैसे संग्रहीत, संभाला और इलाज किया जाता है।

पीएल / एसक्यूएल और एसक्यूएल डेटा प्रकारों के बीच मुख्य अंतर है, एसक्यूएल डेटा प्रकार टेबल कॉलम तक सीमित है जबकि पीएल / एसक्यूएल डेटा प्रकार पीएल / एसक्यूएल ब्लॉकों में उपयोग किए जाते हैं। ट्यूटोरियल में बाद में इस पर अधिक।

निम्नलिखित PL / SQL में विभिन्न डेटा प्रकारों का आरेख है

इस ट्यूटोरियल में, आप सीखेंगे-

  • वर्ण डेटा प्रकार
  • NUMBER डेटा प्रकार
  • BOOLEAN डेटा प्रकार
  • डेट डेटा प्रकार
  • LOB डेटा प्रकार

CHARACTER डेटा प्रकार:

यह डेटा प्रकार मूल रूप से स्ट्रिंग प्रारूप में अल्फ़ान्यूमेरिक वर्णों को संग्रहीत करता है।

शाब्दिक मूल्यों को हमेशा CHARACTER डेटा प्रकार में असाइन करते समय एकल उद्धरणों में संलग्न किया जाना चाहिए।

इस चरित्र डेटा प्रकार को आगे निम्न प्रकार से वर्गीकृत किया गया है:

  • CHAR डेटा प्रकार (निश्चित स्ट्रिंग आकार)
  • VARCHAR2 डेटा प्रकार (चर स्ट्रिंग आकार)
  • VARCHAR डेटा प्रकार
  • NCHAR (मूल निश्चित स्ट्रिंग आकार)
  • NVARCHAR2 (देशी चर स्ट्रिंग आकार)
  • लंबी और लंबी रॉ
डेटा प्रकार विवरण वाक्य - विन्यास
CHAR यह डेटा प्रकार स्ट्रिंग मान को संग्रहीत करता है, और चर घोषित करने के समय स्ट्रिंग का आकार तय किया जाता है।
  • यदि चर इसके लिए घोषित किया गया है तो पूरे आकार पर कब्जा नहीं किया है, तो Oracle रिक्त-पैडेड होगा, इसलिए Oracle घोषित आकार के लिए मेमोरी आवंटित करेगा भले ही चर ने इसे पूरी तरह से कब्जा नहीं किया हो।
  • इस डेटा प्रकार के लिए आकार प्रतिबंध 1-2000 बाइट्स है।
  • CHAR डेटा प्रकार का उपयोग करने के लिए अधिक उपयुक्त है जहां कभी भी डेटा का आकार तय किया जाएगा।
grade CHAR;manager CHAR (10):= 'guru99';
सिंटैक्स स्पष्टीकरण:
  • पहली घोषणा के बयान ने 1 बाइट (डिफ़ॉल्ट मान) के अधिकतम आकार के साथ CHAR डेटा प्रकार के चर 'ग्रेड' को घोषित किया।
  • दूसरी घोषणा के बयान में 10 के अधिकतम आकार के साथ CHAR डेटा प्रकार के चर 'प्रबंधक' को घोषित किया गया और 'गुरु 99' का मान दिया गया जो 6 बाइट्स का है। Oracle इस मामले में 6 बाइट्स के बजाय 10 बाइट्स की मेमोरी आवंटित करेगा।
VARCHAR2 यह डेटा प्रकार स्ट्रिंग को संग्रहीत करता है, लेकिन स्ट्रिंग की लंबाई तय नहीं है।
  • इस डेटा प्रकार के लिए आकार प्रतिबंध तालिका स्तंभ आकार के लिए 1-4000 बाइट्स और चर के लिए 1-32767 बाइट्स है।
  • आकार को चर घोषणा के समय प्रत्येक चर के लिए परिभाषित किया गया है।
  • लेकिन ओरेकल को केवल वैरिएबल परिभाषित होने के बाद ही मेमोरी आवंटित की जाएगी, अर्थात, ओरेकल केवल उस स्ट्रिंग की वास्तविक लंबाई पर विचार करेगा, जो डिक्लेरेशन पार्ट में वेरिएबल के लिए दिए गए साइज की बजाय मेमोरी एलोकेशन के लिए एक वैरिएबल में स्टोर की जाती है।
  • मेमोरी उपयोग को अनुकूलित करने के लिए CHAR डेटा प्रकार के बजाय VARCHAR2 का उपयोग करना हमेशा अच्छा होता है।
manager VARCHAR2(10) := ‘guru99';
सिंटैक्स स्पष्टीकरण:
  • उपरोक्त घोषणा विवरण में VARCHAR2 डेटा प्रकार के चर 'मैनेजर' को 10 के अधिकतम आकार के साथ घोषित किया गया है और इसका मूल्य 'गुरु 99' निर्धारित किया गया है जो 6 बाइट्स का है। ओरेकल इस मामले में केवल 6 बाइट्स की मेमोरी आवंटित करेगा।
वाराह यह VARCHAR2 डेटा प्रकार का पर्याय है।
  • व्यवहार परिवर्तन से बचने के लिए हमेशा VARCHAR के बजाय VARCHAR2 का उपयोग करना एक अच्छा अभ्यास है।
manager VARCHAR(10) := ‘guru99';
सिंटैक्स स्पष्टीकरण:
  • उपरोक्त घोषणा विवरण ने VARCHAR डेटा प्रकार के चर 'प्रबंधक' को 10 के अधिकतम आकार के साथ घोषित किया और 'गुरु 99' का मान निर्दिष्ट किया जो 6 बाइट्स का है। ओरेकल इस मामले में केवल 6 बाइट्स की मेमोरी आवंटित करेगा। (VARCHAR2 के समान)
NCHAR यह डेटा प्रकार CHAR डेटा प्रकार के समान है, लेकिन राष्ट्रीय वर्ण सेट का वर्ण सेट होगा।
  • यह वर्ण सेट NLS_PARAMETERS का उपयोग करके सत्र के लिए परिभाषित किया जा सकता है।
  • वर्ण सेट या तो UTF16 या UTF8 हो सकता है।
  • आकार प्रतिबंध 1-2000 बाइट्स है।
native NCHAR(10);
सिंटैक्स स्पष्टीकरण:
  • उपरोक्त घोषणा विवरण 10 के अधिकतम आकार के साथ NCHAR डेटा प्रकार के चर को 'मूल' घोषित करता है।
  • इस चर की लंबाई चरित्र सेट में परिभाषित के अनुसार प्रति बाइट (लंबाई की संख्या) पर निर्भर करती है।
NVARCHAR2 यह डेटा प्रकार VARCHAR2 डेटा प्रकार के समान है, लेकिन वर्ण सेट राष्ट्रीय वर्ण सेट का होगा।
  • यह वर्ण सेट NLS_PARAMETERS का उपयोग करके सत्र के लिए परिभाषित किया जा सकता है।
  • वर्ण सेट या तो UTF16 या UTF8 हो सकता है।
  • आकार प्रतिबंध 1-4000 बाइट्स है।
Native var NVARCHAR2(10):='guru99';
सिंटैक्स स्पष्टीकरण:
  • उपरोक्त घोषणा विवरण 10 के अधिकतम आकार के साथ NVARCHAR2 डेटा प्रकार के चर 'देशी_वार' की घोषणा करता है।
लंबी और लंबी इस डेटा प्रकार का उपयोग बड़े पाठ या कच्चे डेटा को अधिकतम 2GB करने के लिए किया जाता है।
  • ये मुख्य रूप से डेटा शब्दकोश में उपयोग किए जाते हैं।
  • LONG डेटा प्रकार का उपयोग वर्ण सेट डेटा को संग्रहीत करने के लिए किया जाता है, जबकि LONG RAW का उपयोग बाइनरी प्रारूप में डेटा को संग्रहीत करने के लिए किया जाता है।
  • LONG RAW डेटा टाइप मीडिया ऑब्जेक्ट्स, इमेज आदि को स्वीकार करता है, जबकि LONG केवल उस डेटा पर काम करता है जिसे कैरेक्टर सेट का उपयोग करके स्टोर किया जा सकता है।
Large_text LONG;Large_raw LONG RAW;
सिंटैक्स स्पष्टीकरण:
  • उपरोक्त घोषणा विवरण LONG डेटा प्रकार के चर 'लार्ज_टेक्स्ट' और लोंग आरएए डेटा प्रकार के 'लार्ज_व्रा' की घोषणा करता है।
नोट: LONG डेटा प्रकार का उपयोग करना Oracle द्वारा अनुशंसित नहीं है। इसके बजाय, LOB डेटा प्रकार को प्राथमिकता दी जानी चाहिए।

NUMBER डेटा प्रकार:

यह डेटा प्रकार परिशुद्धता के 38 अंकों तक फिक्स्ड या फ्लोटिंग पॉइंट नंबर स्टोर करता है। यह डेटा प्रकार उन फ़ील्ड्स के साथ काम करने के लिए उपयोग किया जाता है जिनमें केवल नंबर डेटा होगा। चर को सटीक और दशमलव अंकों के विवरण के साथ या इस जानकारी के बिना घोषित किया जा सकता है। इस डेटा प्रकार के लिए असाइन करते समय मानों को उद्धरणों के भीतर संलग्न करने की आवश्यकता नहीं है।

A NUMBER(8,2);B NUMBER(8);C NUMBER;

सिंटैक्स स्पष्टीकरण:

  • उपरोक्त में, पहला ऐलान चर first ए ’कुल सटीक 8 और दशमलव अंकों के साथ संख्या डेटा प्रकार का है।
  • दूसरी घोषणा यह घोषित करती है कि चर 'बी' कुल परिशुद्धता 8 और कोई दशमलव अंकों के साथ संख्या डेटा प्रकार का है।
  • तीसरी घोषणा सबसे अधिक सामान्य है, घोषित चर 'सी' संख्या डेटा प्रकार की है जिसमें सटीक या दशमलव स्थानों में कोई प्रतिबंध नहीं है। इसमें अधिकतम 38 अंक तक लग सकते हैं।

BOOLEAN डेटा प्रकार:

यह डेटा प्रकार तार्किक मानों को संग्रहीत करता है। यह या तो TRUE या FALSE का प्रतिनिधित्व करता है और मुख्य रूप से सशर्त बयानों में उपयोग किया जाता है। इस डेटा प्रकार के लिए असाइन करते समय मानों को उद्धरणों के भीतर संलग्न करने की आवश्यकता नहीं है।

Var1 BOOLEAN;

सिंटैक्स स्पष्टीकरण:

  • ऊपर, चर 'Var1' को BOOLEAN डेटा प्रकार के रूप में घोषित किया गया है। शर्त सेट के आधार पर कोड का आउटपुट सही या गलत होगा।

दिनांक डेटा प्रकार:

यह डेटा प्रकार दिनांक स्वरूप, दिनांक, माह और वर्ष के अनुसार मानों को संग्रहीत करता है। जब भी तिथि के साथ एक चर को DATE डेटा प्रकार के साथ परिभाषित किया जाता है, तो वह समय की जानकारी रख सकता है और डिफ़ॉल्ट समय तक जानकारी निर्दिष्ट नहीं होने पर 12:00:00 पर सेट की जाती है। मानों को इस डेटा प्रकार के लिए असाइन करते समय उद्धरणों के भीतर संलग्न करना होगा।

इनपुट और आउटपुट के लिए मानक Oracle समय प्रारूप 'DD-MON-YY' है और इसे सत्र स्तर पर NLS_PARAMETERS (NLS_DATE_FORMAT) पर फिर से सेट किया गया है।

newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;

सिंटैक्स स्पष्टीकरण:

  • इसके बाद के संस्करण, चर 'newyear' में तिथि का डेटा प्रकार के रूप में घोषित और जनवरी 1 के मान असाइन किया गया है सेंट 2015 की तारीख।
  • दूसरी घोषणा चर current_date को DATE डेटा प्रकार के रूप में घोषित करती है और वर्तमान सिस्टम तिथि के साथ मान निर्दिष्ट करती है।
  • ये दोनों चर समय की जानकारी रखते हैं।

LOB डेटा प्रकार:

यह डेटा प्रकार मुख्य रूप से असंरचित डेटा की छवियों, मल्टीमीडिया फ़ाइलों, आदि के बड़े ब्लॉक को स्टोर करने और हेरफेर करने के लिए उपयोग किया जाता है, Oracle एक LONG डेटा प्रकार के बजाय LOB पसंद करता है क्योंकि यह LONG डेटा प्रकार की तुलना में अधिक लचीला है। नीचे LONG डेटा प्रकार पर LOB के कुछ मुख्य लाभ दिए गए हैं।

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

इसलिए, LONG डेटा प्रकार के बजाय LOB डेटा प्रकार का उपयोग करना हमेशा अच्छा होता है। निम्नलिखित विभिन्न एलओबी डेटा प्रकार हैं। वे 128 टेराबाइट के आकार तक स्टोर कर सकते हैं।

  1. ब्लॉब
  2. CLOB और NCLOB
  3. शावक
डेटा प्रकार विवरण वाक्य - विन्यास
ब्लॉब

यह डेटा प्रकार 128 टीबी के अधिकतम आकार तक द्विआधारी फ़ाइल प्रारूप में एलओबी डेटा संग्रहीत करता है। यह वर्ण सेट विवरण के आधार पर डेटा को संग्रहीत नहीं करता है, ताकि यह असंरचित डेटा जैसे मल्टीमीडिया ऑब्जेक्ट, चित्र आदि को संग्रहीत कर सके।

Binary_data BLOB;

सिंटैक्स स्पष्टीकरण:

  • उपरोक्त में, परिवर्तनशील 'Binary_data' को BLOB घोषित किया गया है।
CLOB और NCLOB

CLOB डेटा प्रकार LOB डेटा को वर्ण सेट में संग्रहीत करता है, जबकि NCLOB डेटा को मूल वर्ण सेट में संग्रहीत करता है। चूंकि ये डेटा प्रकार वर्ण सेट आधारित स्टोरेज का उपयोग करते हैं, इसलिए ये मल्टीमीडिया, चित्र आदि जैसे डेटा को स्टोर नहीं कर सकते हैं, जिन्हें चरित्र स्ट्रिंग में नहीं डाला जा सकता है। इन डेटा प्रकारों का अधिकतम आकार 128 टीबी है।

Charac_data CLOB;

सिंटैक्स स्पष्टीकरण:

  • ऊपर, चर 'चरक_दत्त' को CLOB डेटा प्रकार के रूप में घोषित किया गया है।
शावक
  • बायरर डेटा प्रकार हैं जो डेटाबेस के बाहर असंरक्षित बाइनरी प्रारूप डेटा को ऑपरेटिंग-सिस्टम फ़ाइल के रूप में संग्रहीत करते हैं।
  • बरमेर का आकार एक सीमित ऑपरेटिंग सिस्टम के लिए है, और वे केवल-पढ़ने वाली फाइलें हैं और उन्हें संशोधित नहीं किया जा सकता है।

सारांश

हमने विभिन्न सरल डेटा प्रकारों को कवर किया है जो PL / SQL में उनके सिंटैक्स के साथ उपलब्ध हैं। हम आगे के विषयों में जटिल डेटा प्रकारों के बारे में जानेंगे।