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

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

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

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

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

PL/SQL डेटाटाइप्स
PL/SQL में विभिन्न डेटा प्रकार

PL/SQL कैरेक्टर डेटा प्रकार

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

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

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

  • CHAR डेटा प्रकार (निश्चित स्ट्रिंग आकार)
  • VARCHAR2 डेटा प्रकार (परिवर्तनीय स्ट्रिंग आकार)
  • VARCHAR डेटा प्रकार
  • NCHAR (मूल निश्चित स्ट्रिंग आकार)
  • NVARCHAR2 (मूल चर स्ट्रिंग आकार)
  • लंबा और लंबा कच्चा
डाटा प्रकार विवरण वाक्य - विन्यास
CHAR यह डेटा प्रकार स्ट्रिंग मान संग्रहीत करता है, और स्ट्रिंग का आकार घोषित करते समय तय किया जाता है परिवर्तनशील.

  • Oracle यदि चर उस संपूर्ण आकार पर कब्जा नहीं करता है जो इसके लिए घोषित किया गया है, तो चर को रिक्त-पैड किया जाएगा, इसलिए Oracle घोषित आकार के लिए मेमोरी आवंटित करेगा भले ही चर ने इसे पूरी तरह से कब्जा नहीं किया हो।
  • इस डेटा प्रकार के लिए आकार प्रतिबंध 1-2000 बाइट्स है।
  • CHAR डेटा प्रकार का उपयोग अधिक उपयुक्त है, जहां डेटा का निश्चित आकार नियंत्रित किया जाएगा।
grade CHAR;
manager CHAR (10):= 'guru99';

वाक्यविन्यास स्पष्टीकरण:

  • प्रथम घोषणा कथन ने CHAR डेटा प्रकार के चर 'ग्रेड' को 1 बाइट (डिफ़ॉल्ट मान) के अधिकतम आकार के साथ घोषित किया।
  • दूसरे घोषणा कथन ने CHAR डेटा प्रकार के चर 'मैनेजर' को 10 के अधिकतम आकार के साथ घोषित किया और 'guru99' मान निर्दिष्ट किया जो 6 बाइट्स का है। Oracle इस मामले में 10 बाइट्स के बजाय 6 बाइट्स की मेमोरी आवंटित की जाएगी।
वचर२ यह डेटा प्रकार स्ट्रिंग को संग्रहीत करता है, लेकिन स्ट्रिंग की लंबाई निश्चित नहीं होती है।

  • इस डेटा प्रकार के लिए आकार प्रतिबंध तालिका स्तंभ आकार के लिए 1-4000 बाइट्स और चर के लिए 1-32767 बाइट्स है।
  • प्रत्येक चर के लिए आकार चर घोषणा के समय परिभाषित किया जाता है।
  • परंतु Oracle चर परिभाषित होने के बाद ही मेमोरी आवंटित करेगा, अर्थात, Oracle मेमोरी आवंटन के लिए चर में संग्रहीत स्ट्रिंग की केवल वास्तविक लंबाई पर विचार किया जाएगा, न कि घोषणा भाग में चर के लिए दिए गए आकार पर।
  • मेमोरी उपयोग को अनुकूलित करने के लिए CHAR डेटा प्रकार के बजाय VARCHAR2 का उपयोग करना हमेशा अच्छा होता है।
manager VARCHAR2(10) := ‘guru99';

वाक्यविन्यास स्पष्टीकरण:

  • उपरोक्त घोषणा कथन ने VARCHAR2 डेटा प्रकार के चर 'मैनेजर' को 10 के अधिकतम आकार के साथ घोषित किया और 'guru99' मान निर्दिष्ट किया जो 6 बाइट्स का है। Oracle इस मामले में केवल 6 बाइट्स की मेमोरी आवंटित की जाएगी।
VARCHAR यह VARCHAR2 डेटा प्रकार का पर्याय है।

  • व्यवहारगत परिवर्तनों से बचने के लिए VARCHAR के स्थान पर VARCHAR2 का उपयोग करना सदैव अच्छा रहता है।
manager VARCHAR(10) := ‘guru99';

वाक्यविन्यास स्पष्टीकरण:

  • उपरोक्त घोषणा कथन ने VARCHAR डेटा प्रकार के चर 'मैनेजर' को 10 के अधिकतम आकार के साथ घोषित किया और 'guru99' मान निर्दिष्ट किया जो 6 बाइट्स का है। Oracle इस मामले में केवल 6 बाइट्स की मेमोरी आवंटित की जाएगी। (VARCHAR2 के समान)
एनसीएचएआर यह डेटा प्रकार CHAR डेटा प्रकार के समान है, लेकिन वर्ण सेट राष्ट्रीय वर्ण सेट का होगा।

  • इस वर्ण सेट को NLS_PARAMETERS का उपयोग करके सत्र के लिए परिभाषित किया जा सकता है।
  • वर्ण सेट या तो UTF16 या UTF8 हो सकता है।
  • आकार प्रतिबंध 1-2000 बाइट्स है.
native NCHAR(10);

वाक्यविन्यास स्पष्टीकरण:

  • उपरोक्त घोषणा कथन NCHAR डेटा प्रकार के 'native' चर को अधिकतम 10 आकार के साथ घोषित करता है।
  • इस चर की लंबाई वर्ण सेट में परिभाषित प्रति बाइट (लंबाई की संख्या) पर निर्भर करती है।
एनवीएआरसीएचएआर2 यह डेटा प्रकार VARCHAR2 डेटा प्रकार के समान है, लेकिन वर्ण सेट राष्ट्रीय वर्ण सेट का होगा।

  • इस वर्ण सेट को NLS_PARAMETERS का उपयोग करके सत्र के लिए परिभाषित किया जा सकता है।
  • वर्ण सेट या तो UTF16 या UTF8 हो सकता है।
  • आकार प्रतिबंध 1-4000 बाइट्स है.
Native var NVARCHAR2(10):='guru99';

वाक्यविन्यास स्पष्टीकरण:

  • उपरोक्त घोषणा कथन NVARCHAR2 डेटा प्रकार के चर 'Native_var' को 10 के अधिकतम आकार के साथ घोषित करता है।
लॉन्ग और लॉन्ग्रा इस डेटा प्रकार का उपयोग बड़े पाठ या कच्चे डेटा को अधिकतम 2GB आकार तक संग्रहीत करने के लिए किया जाता है।

  • इनका उपयोग मुख्यतः डेटा शब्दकोष में किया जाता है।
  • LONG डेटा प्रकार का उपयोग वर्ण सेट डेटा को संग्रहीत करने के लिए किया जाता है, जबकि LONG RAW का उपयोग बाइनरी प्रारूप में डेटा को संग्रहीत करने के लिए किया जाता है।
  • LONG RAW डेटा प्रकार मीडिया ऑब्जेक्ट्स, छवियों आदि को स्वीकार करता है, जबकि LONG केवल उस डेटा पर काम करता है जिसे कैरेक्टर सेट का उपयोग करके संग्रहीत किया जा सकता है।
Large_text LONG;
Large_raw LONG RAW;

वाक्यविन्यास स्पष्टीकरण:

  • उपरोक्त घोषणा कथन LONG डेटा प्रकार के चर 'Large_text' और LONG RAW डेटा प्रकार के चर 'Large_raw' को घोषित करता है।

नोट: LONG डेटा प्रकार का उपयोग करने की अनुशंसा नहीं की जाती है Oracleइसके बजाय, LOB डेटा प्रकार को प्राथमिकता दी जानी चाहिए।

PL/SQL NUMBER डेटा प्रकार

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

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

वाक्यविन्यास स्पष्टीकरण:

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

PL/SQL बूलियन डेटा प्रकार

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

Var1 BOOLEAN;

वाक्यविन्यास स्पष्टीकरण:

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

PL/SQL DATE डेटा प्रकार

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

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

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

वाक्यविन्यास स्पष्टीकरण:

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

PL/SQL LOB डेटा प्रकार

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

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

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

  1. ब्लॉब
  2. सीएलओबी और एनसीएलओबी
  3. बीफाइल
डाटा प्रकार विवरण वाक्य - विन्यास
ब्लॉब यह डेटा प्रकार LOB डेटा को बाइनरी फ़ाइल फ़ॉर्मेट में 128 TB के अधिकतम आकार तक संग्रहीत करता है। यह वर्ण सेट विवरण के आधार पर डेटा संग्रहीत नहीं करता है, ताकि यह मल्टीमीडिया ऑब्जेक्ट, छवियाँ आदि जैसे असंरचित डेटा को संग्रहीत कर सके।
Binary_data BLOB;

वाक्यविन्यास स्पष्टीकरण:

  • उपरोक्त में, चर 'Binary_data' को BLOB के रूप में घोषित किया गया है।
सीएलओबी और एनसीएलओबी CLOB डेटा प्रकार LOB डेटा को कैरेक्टर सेट में संग्रहीत करता है, जबकि NCLOB डेटा को मूल कैरेक्टर सेट में संग्रहीत करता है। चूँकि ये डेटा प्रकार कैरेक्टर सेट आधारित स्टोरेज का उपयोग करते हैं, इसलिए ये मल्टीमीडिया, इमेज आदि जैसे डेटा को संग्रहीत नहीं कर सकते हैं जिन्हें कैरेक्टर स्ट्रिंग में नहीं रखा जा सकता है। इन डेटा प्रकारों का अधिकतम आकार 128 TB है।
Charac_data CLOB;

वाक्यविन्यास स्पष्टीकरण:

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

सारांश

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