اوریکل PL/SQL ڈیٹا کی اقسام: بولین ، نمبر ، تاریخ [مثال]

PL/SQL ڈیٹا ٹائپ کیا ہے؟

ڈیٹا کی اقسام۔ پی ایل/ایس کیو ایل میں اس بات کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے کہ ڈیٹا سٹوریج اور پروسیسنگ کے دوران اوریکل کے ذریعے ڈیٹا کو کیسے ذخیرہ ، سنبھالا اور علاج کیا جائے گا۔ ڈیٹا کی اقسام مخصوص سٹوریج فارمیٹ اور رینج کی رکاوٹوں سے وابستہ ہیں۔ اوریکل میں ، ہر قدر یا مستقل کو ڈیٹا ٹائپ کے ساتھ تفویض کیا جاتا ہے۔

PL/SQL اور SQL ڈیٹا کی اقسام کے درمیان بنیادی فرق یہ ہے کہ ، SQL ڈیٹا کی قسم ٹیبل کالم تک محدود ہے جبکہ PL/SQL ڈیٹا کی اقسام استعمال ہوتی ہیں PL/SQL بلاکس . اس پر مزید بعد میں سبق میں.

مختلف اوریکل PL/SQL ڈیٹا کی اقسام کا خاکہ درج ذیل ہے۔

PL/SQL میں ڈیٹا کی مختلف اقسام۔

اس PL/SQL ڈیٹا ٹائپ ٹیوٹوریل میں ، آپ سیکھیں گے-

PL/SQL کریکٹر ڈیٹا ٹائپ

یہ ڈیٹا ٹائپ بنیادی طور پر حروف تہجی کے حروف کو سٹرنگ کی شکل میں محفوظ کرتا ہے۔

لفظی اقدار کو ہمیشہ ایک اقتباس میں بند کیا جانا چاہئے جب کہ انہیں کریکٹر ڈیٹا ٹائپ میں تفویض کیا جائے۔

اس کریکٹر ڈیٹا ٹائپ کو مزید درجہ بندی کیا گیا ہے:

  • CHAR ڈیٹا کی قسم (فکسڈ سٹرنگ سائز)
  • VARCHAR2 ڈیٹا کی قسم (متغیر سٹرنگ سائز)
  • VARCHAR ڈیٹا کی قسم
  • این سی ایچ اے آر (مقامی فکسڈ سٹرنگ سائز)
  • NVARCHAR2 (مقامی متغیر سٹرنگ سائز)
  • لمبی اور لمبی را۔
ڈیٹا کی قسم تفصیل نحو۔
CHAR یہ ڈیٹا ٹائپ سٹرنگ ویلیو کو اسٹور کرتا ہے ، اور سٹرنگ کا سائز متغیر کا اعلان کرتے وقت طے ہوتا ہے۔
  • اوریکل کو متغیر کو خالی پیڈ کیا جائے گا اگر متغیر اس پورے سائز پر قبضہ نہ کرے جو اس کے لیے اعلان کیا گیا ہے ، اس لیے اوریکل اعلان شدہ سائز کے لیے میموری مختص کرے گا چاہے متغیر اس پر پوری طرح قبضہ نہ کرے۔
  • اس ڈیٹا ٹائپ کے لیے سائز کی پابندی 1-2000 بائٹس ہے۔
  • CHAR ڈیٹا کی قسم استعمال کرنے کے لیے زیادہ موزوں ہے جہاں کبھی بھی طے شدہ ڈیٹا کا سائز سنبھالا جائے گا۔
 grade CHAR; manager CHAR (10):= 'on2vhf'; 
نحو کی وضاحت:
  • پہلے اعلامیہ بیان میں CHAR ڈیٹا ٹائپ کے متغیر 'گریڈ' کو 1 بائٹ (ڈیفالٹ ویلیو) کے زیادہ سے زیادہ سائز کے ساتھ قرار دیا گیا۔
  • دوسرے اعلامیے کے بیان میں CHAR ڈیٹا ٹائپ کے متغیر 'مینیجر' کو 10 کے زیادہ سے زیادہ سائز کے ساتھ قرار دیا گیا اور 'گرو 99' کی قیمت تفویض کی گئی جو 6 بائٹس کی ہے۔ اوریکل اس معاملے میں 6 بائٹس کے بجائے 10 بائٹس کی میموری مختص کرے گا۔
VARCHAR2۔ یہ ڈیٹا ٹائپ سٹرنگ کو اسٹور کرتا ہے ، لیکن سٹرنگ کی لمبائی طے نہیں ہوتی۔
  • اس ڈیٹا ٹائپ کے سائز کی پابندی ٹیبل کالم سائز کے لیے 1-4000 بائٹس اور متغیرات کے لیے 1-32767 بائٹس ہے۔
  • متغیر اعلان کے وقت ہر متغیر کے لیے سائز کی وضاحت کی جاتی ہے۔
  • لیکن اوریکل صرف متغیر کی وضاحت کے بعد میموری کو مختص کرے گا ، یعنی اوریکل صرف اس تار کی اصل لمبائی پر غور کرے گا جو کہ میموری الاٹمنٹ کے لیے ایک متغیر میں ذخیرہ شدہ ہے اس سائز کے بجائے جو ڈیکلریشن حصے میں کسی متغیر کے لیے دیا گیا ہے۔
  • میموری کے استعمال کو بہتر بنانے کے لیے CHAR ڈیٹا ٹائپ کے بجائے VARCHAR2 استعمال کرنا ہمیشہ اچھا ہے۔
 manager VARCHAR2(10) := ‘on2vhf'; 
نحو کی وضاحت:
  • مذکورہ بالا اعلامیہ بیان نے VARCHAR2 ڈیٹا ٹائپ کے متغیر 'مینیجر' کو 10 کے زیادہ سے زیادہ سائز کے ساتھ قرار دیا اور 'گرو 99' کی قیمت تفویض کی جو 6 بائٹس کی ہے۔ اوریکل اس معاملے میں صرف 6 بائٹس کی میموری مختص کرے گا۔
ورچار یہ VARCHAR2 ڈیٹا ٹائپ کا مترادف ہے۔
  • طرز عمل میں تبدیلیوں سے بچنے کے لیے VARCHAR2 کے بجائے VARCHAR2 استعمال کرنا ہمیشہ ایک اچھا عمل ہے۔
 manager VARCHAR(10) := ‘on2vhf'; 
نحو کی وضاحت:
  • مذکورہ بالا اعلامیہ بیان نے VARCHAR ڈیٹا ٹائپ کے متغیر 'مینیجر' کو 10 کے زیادہ سے زیادہ سائز کے ساتھ قرار دیا اور 'گرو 99' کی قیمت تفویض کی جو 6 بائٹس کی ہے۔ اوریکل اس معاملے میں صرف 6 بائٹس کی میموری مختص کرے گا۔ (VARCHAR2 کی طرح)
این سی ایچ اے آر۔ یہ ڈیٹا ٹائپ CHAR ڈیٹا ٹائپ کی طرح ہے ، لیکن کریکٹر سیٹ قومی کردار سیٹ کی مرضی ہے۔

  • یہ کردار سیٹ NLS_PARAMETERS کا استعمال کرتے ہوئے سیشن کے لیے متعین کیا جا سکتا ہے۔
  • کریکٹر سیٹ یا تو UTF16 یا UTF8 ہو سکتا ہے۔
  • سائز کی پابندی 1-2000 بائٹس ہے۔
 native NCHAR(10); 
نحو کی وضاحت:
  • مذکورہ اعلامیہ بیان NCHAR ڈیٹا ٹائپ کے متغیر 'مقامی' کو 10 کے زیادہ سے زیادہ سائز کے ساتھ ظاہر کرتا ہے۔
  • اس متغیر کی لمبائی انحصار کرتی ہے (لمبائی کی تعداد) فی بائٹ جیسا کہ کردار سیٹ میں بیان کیا گیا ہے۔
NVARCHAR2۔ یہ ڈیٹا کی قسم VARCHAR2 ڈیٹا ٹائپ کی طرح ہے ، لیکن کریکٹر سیٹ قومی کریکٹر سیٹ کا ہوگا۔
  • یہ کردار سیٹ NLS_PARAMETERS کا استعمال کرتے ہوئے سیشن کے لیے متعین کیا جا سکتا ہے۔
  • کریکٹر سیٹ یا تو UTF16 یا UTF8 ہو سکتا ہے۔
  • سائز کی پابندی 1-4000 بائٹس ہے۔
 Native var NVARCHAR2(10):='on2vhf'; 
نحو کی وضاحت:

  • مذکورہ اعلامیہ بیان NVARCHAR2 ڈیٹا ٹائپ کے متغیر 'Native_var' کو 10 کے زیادہ سے زیادہ سائز کے ساتھ ظاہر کرتا ہے۔
لمبا اور لانگرا۔ یہ ڈیٹا ٹائپ بڑے ٹیکسٹ یا خام ڈیٹا کو 2GB کے زیادہ سے زیادہ سائز تک محفوظ کرنے کے لیے استعمال ہوتا ہے۔
  • یہ بنیادی طور پر ڈیٹا لغت میں استعمال ہوتے ہیں۔
  • لانگ ڈیٹا ٹائپ کیریکٹر سیٹ ڈیٹا کو اسٹور کرنے کے لیے استعمال کیا جاتا ہے جبکہ لانگ را کو بائنری فارمیٹ میں ڈیٹا سٹور کرنے کے لیے استعمال کیا جاتا ہے۔
  • لانگ را ڈیٹا ٹائپ میڈیا اشیاء ، تصاویر وغیرہ کو قبول کرتا ہے جبکہ لانگ صرف ڈیٹا پر کام کرتا ہے جسے کریکٹر سیٹ کا استعمال کرتے ہوئے محفوظ کیا جا سکتا ہے۔
 Large_text LONG; Large_raw LONG RAW; 
نحو کی وضاحت:

  • مذکورہ اعلامیہ بیان LONG ڈیٹا ٹائپ کے متغیر 'لارج_ ٹیکسٹ' اور LONG RAW ڈیٹا ٹائپ کے 'لارج_راو' کا اعلان کرتا ہے۔
نوٹ: اوریکل کے ذریعہ طویل ڈیٹا ٹائپ استعمال کرنے کی سفارش نہیں کی جاتی ہے۔ اس کے بجائے ، LOB ڈیٹا کی قسم کو ترجیح دی جانی چاہیے۔

PL/SQL نمبر ڈیٹا کی قسم۔

یہ ڈیٹا ٹائپ فکسڈ یا فلوٹنگ پوائنٹ نمبرز کو 38 ہندسوں تک درست رکھتا ہے۔ یہ ڈیٹا ٹائپ فیلڈز کے ساتھ کام کرنے کے لیے استعمال کیا جاتا ہے جس میں صرف نمبر ڈیٹا ہوگا۔ متغیر کو یا تو صحت سے متعلق اور اعشاریہ ہندسوں کی تفصیلات کے ساتھ یا اس معلومات کے بغیر اعلان کیا جاسکتا ہے۔ اس ڈیٹا ٹائپ کو تفویض کرتے وقت اقدار کو کوٹس کے اندر بند کرنے کی ضرورت نہیں ہے۔ | _+_ |

نحو کی وضاحت:

  • مذکورہ بالا میں ، پہلا اعلان اعلان کرتا ہے کہ متغیر 'A' اعداد و شمار کی قسم کا ہے جس میں کل درستگی 8 اور اعشاریہ ہندسے 2 ہیں۔
  • دوسرا اعلان اعلان کرتا ہے کہ متغیر 'B' اعداد و شمار کی قسم کا ہے جس میں کل درستگی 8 ہے اور کوئی اعشاریہ نہیں۔
  • تیسرا اعلامیہ سب سے عام ہے ، اعلان کرتا ہے کہ متغیر 'C' اعداد و شمار کی قسم کا ہے جس میں صحت یا اعشاریہ کی جگہوں پر کوئی پابندی نہیں ہے۔ اس میں زیادہ سے زیادہ 38 ہندسے لگ سکتے ہیں۔

PL/SQL بولین ڈیٹا ٹائپ

یہ ڈیٹا ٹائپ منطقی اقدار کو محفوظ کرتا ہے۔ اوریکل بولین ڈیٹا ٹائپ درست یا غلط کی نمائندگی کرتا ہے اور بنیادی طور پر مشروط بیانات میں استعمال ہوتا ہے۔ اس ڈیٹا ٹائپ کو تفویض کرتے وقت اقدار کو کوٹس کے اندر بند کرنے کی ضرورت نہیں ہے۔ | _+_ |

نحو کی وضاحت:

  • مندرجہ بالا میں ، متغیر 'Var1' کو بولین ڈیٹا ٹائپ قرار دیا گیا ہے۔ کوڈ کا آؤٹ پٹ یا تو شرط کے مطابق درست یا غلط ہوگا۔

PL/SQL DATE ڈیٹا ٹائپ۔

یہ ڈیٹا ٹائپ اقدار کو تاریخ کی شکل میں بطور تاریخ ، مہینہ اور سال محفوظ کرتا ہے۔ جب بھی کسی متغیر کو DATE ڈیٹا ٹائپ کے ساتھ تاریخ کے ساتھ بیان کیا جاتا ہے تو وہ وقت کی معلومات رکھ سکتا ہے اور بطور ڈیفالٹ وقت کی معلومات 12:00:00 پر مقرر کی جاتی ہے اگر وضاحت نہیں کی جاتی ہے۔ اقدار کو اس ڈیٹا ٹائپ کے لیے تفویض کرتے وقت قیمتوں میں شامل کرنے کی ضرورت ہے۔

ان پٹ اور آؤٹ پٹ کے لیے معیاری اوریکل ٹائم فارمیٹ 'DD-MON-YY' ہے اور اسے دوبارہ NLS_PARAMETERS (NLS_DATE_FORMAT) سیشن لیول پر سیٹ کیا گیا ہے۔ | _+_ |

نحو کی وضاحت:

  • مذکورہ بالا میں ، متغیر 'نیا سال' کو DATE ڈیٹا کی قسم قرار دیا گیا ہے اور اسے 1 جنوری کی قیمت تفویض کی گئی ہے۔سینٹ، 2015 کی تاریخ۔
  • دوسرا اعلان متغیر current_date کو DATE ڈیٹا کی قسم قرار دیتا ہے اور موجودہ نظام کی تاریخ کے ساتھ قیمت تفویض کرتا ہے۔
  • یہ دونوں متغیر وقت کی معلومات رکھتے ہیں۔

PL/SQL LOB ڈیٹا کی قسم۔

یہ ڈیٹا ٹائپ بنیادی طور پر غیر ساختہ ڈیٹا کے بڑے بلاکس جیسے تصاویر ، ملٹی میڈیا فائلوں وغیرہ کو ذخیرہ کرنے اور ہیرا پھیری کے لیے استعمال کیا جاتا ہے اوریکل لمبے ڈیٹا ٹائپ کے بجائے ایل او بی کو ترجیح دیتا ہے کیونکہ یہ لمبے ڈیٹا ٹائپ سے زیادہ لچکدار ہوتا ہے۔ ذیل میں LOB کے لمبے ڈیٹا ٹائپ پر چند اہم فوائد ہیں۔

  • لمبے ڈیٹا ٹائپ والے ٹیبل میں کالم کی تعداد 1 تک محدود ہے ، جبکہ ٹیبل میں LOB ڈیٹا ٹائپ والے کالموں کی تعداد پر کوئی پابندی نہیں ہے۔
  • ڈیٹا انٹرفیس ٹول ڈیٹا کی نقل کے دوران ٹیبل کا LOB ڈیٹا ٹائپ قبول کرتا ہے ، لیکن یہ ٹیبل کے لمبے کالم کو چھوڑ دیتا ہے۔ ان لمبے کالموں کو دستی طور پر نقل کرنے کی ضرورت ہے۔
  • لمبے کالم کا سائز 2 جی بی ہے ، جبکہ ایل او بی 128 ٹی بی تک ذخیرہ کرسکتا ہے۔
  • اوریکل اپنی ہر ریلیز میں جدید ضرورت کے مطابق ایل او بی ڈیٹا ٹائپ کو مسلسل بہتر بنا رہا ہے ، جبکہ لانگ ڈیٹا ٹائپ مستقل ہے اور بہت سی اپ ڈیٹس نہیں مل رہا ہے۔

لہذا ، لمبے ڈیٹا کی قسم کے بجائے LOB ڈیٹا ٹائپ استعمال کرنا ہمیشہ اچھا ہے۔ LOB ڈیٹا کی مختلف اقسام درج ذیل ہیں۔ وہ 128 ٹیرا بائٹس کے سائز تک سٹور کر سکتے ہیں۔

  1. BLOB
  2. CLOB اور NCLOB۔
  3. BFILE
ڈیٹا کی قسم تفصیل نحو۔
BLOB

یہ ڈیٹا ٹائپ LOB ڈیٹا کو بائنری فائل فارمیٹ میں 128 TB کے زیادہ سے زیادہ سائز تک محفوظ کرتا ہے۔ یہ کریکٹر سیٹ کی تفصیلات پر مبنی ڈیٹا کو محفوظ نہیں کرتا ہے ، تاکہ یہ غیر ساختہ ڈیٹا جیسے ملٹی میڈیا اشیاء ، تصاویر وغیرہ کو محفوظ کر سکے۔

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

نحو کی وضاحت:

  • مندرجہ بالا میں ، متغیر 'Binary_data' کو BLOB قرار دیا گیا ہے۔
CLOB اور NCLOB۔

CLOB ڈیٹا ٹائپ LOB ڈیٹا کو کیریکٹر سیٹ میں محفوظ کرتا ہے ، جبکہ NCLOB ڈیٹا کو مقامی کریکٹر سیٹ میں محفوظ کرتا ہے۔ چونکہ یہ ڈیٹا ٹائپ کریکٹر سیٹ بیسڈ سٹوریج استعمال کرتے ہیں ، اس لیے یہ ڈیٹا کو ملٹی میڈیا ، امیجز وغیرہ کو اسٹور نہیں کر سکتا جسے کریکٹر سٹرنگ میں نہیں ڈالا جا سکتا۔ ان ڈیٹا ٹائپز کا زیادہ سے زیادہ سائز 128 ٹی بی ہے۔

 Var1 BOOLEAN; 

نحو کی وضاحت:

  • مندرجہ بالا میں ، متغیر 'چارک_ڈیٹا' کو CLOB ڈیٹا ٹائپ قرار دیا گیا ہے۔
BFILE
  • BFILE ڈیٹا کی اقسام ہیں جنہوں نے غیر ساختہ بائنری فارمیٹ ڈیٹا کو ڈیٹا بیس کے باہر آپریٹنگ سسٹم فائل کے طور پر محفوظ کیا۔
  • BFILE کا سائز ایک محدود آپریٹنگ سسٹم کا ہے ، اور وہ صرف پڑھنے والی فائلیں ہیں اور ان میں ترمیم نہیں کی جا سکتی۔

خلاصہ

ہم نے مختلف سادہ ڈیٹا کی اقسام کا احاطہ کیا ہے جو PL/SQL میں ان کے نحو کے ساتھ دستیاب ہیں۔ ہم مزید موضوعات میں ڈیٹا کی پیچیدہ اقسام کے بارے میں سیکھیں گے۔