Oracle أنواع بيانات PL/SQL: منطقية، رقم، تاريخ [مثال]

ما هي أنواع البيانات PL/SQL؟

أنواع البيانات في PL/SQL يتم استخدامها لتحديد كيفية تخزين البيانات ومعالجتها ومعالجتها Oracle أثناء تخزين البيانات ومعالجتها. ترتبط أنواع البيانات بتنسيق التخزين المحدد وقيود النطاق. في Oracle، يتم تعيين كل قيمة أو ثابت بنوع بيانات.

الفرق الرئيسي بين PL/SQL و SQL أنواع البيانات هي أن نوع بيانات SQL يقتصر على عمود الجدول بينما يتم استخدام أنواع بيانات PL/SQL في كتل بل / SQLالمزيد حول هذا لاحقًا في البرنامج التعليمي.

فيما يلي مخطط لمختلف Oracle أنواع بيانات بل/سكل:

أنواع البيانات PL/SQL
أنواع البيانات المختلفة في PL/SQL

نوع بيانات حرف PL/SQL

يقوم نوع البيانات هذا بشكل أساسي بتخزين الأحرف الأبجدية الرقمية بتنسيق سلسلة.

يجب دائمًا تضمين القيم الحرفية بين علامات اقتباس مفردة أثناء تعيينها لنوع بيانات CHARACTER.

يتم تصنيف نوع بيانات الشخصية هذا أيضًا على النحو التالي:

  • نوع بيانات CHAR (حجم سلسلة ثابت)
  • نوع البيانات VARCHAR2 (حجم سلسلة متغير)
  • نوع البيانات VARCHAR
  • NCHAR (حجم السلسلة الثابتة الأصلي)
  • NVARCHAR2 (حجم السلسلة المتغير الأصلي)
  • خام طويل وطويل
نوع البيانات Descriptأيون بناء الجملة
CHAR يقوم نوع البيانات هذا بتخزين قيمة السلسلة، ويتم تحديد حجم السلسلة في وقت الإعلان عن القيمة متغير.

  • Oracle سيكون المتغير فارغًا إذا لم يشغل المتغير الحجم الكامل الذي تم الإعلان عنه له، وبالتالي Oracle سيخصص الذاكرة للحجم المعلن حتى لو لم يشغلها المتغير بالكامل.
  • تقييد الحجم لنوع البيانات هذا هو 1-2000 بايت.
  • يعد نوع بيانات CHAR أكثر ملاءمة للاستخدام حيث سيتم التعامل مع حجم البيانات الثابت.
grade CHAR;
manager CHAR (10):= 'guru99';

شرح بناء الجملة:

  • أعلن بيان الإعلان الأول عن "درجة" المتغير لنوع بيانات CHAR مع الحد الأقصى لحجم 1 بايت (القيمة الافتراضية).
  • أعلن بيان التعريف الثاني عن المتغير "manager" لنوع بيانات CHAR بحد أقصى للحجم وهو 10 وخصص القيمة "guru99" التي تبلغ 6 بايت. Oracle سيتم تخصيص ذاكرة 10 بايت بدلاً من 6 بايت في هذه الحالة.
فاركار 2 يقوم نوع البيانات هذا بتخزين السلسلة، لكن طول السلسلة غير ثابت.

  • تقييد الحجم لنوع البيانات هذا هو 1-4000 بايت لحجم عمود الجدول و1-32767 بايت للمتغيرات.
  • يتم تعريف الحجم لكل متغير في وقت إعلان المتغير.
  • لكن Oracle سيتم تخصيص الذاكرة فقط بعد تعريف المتغير، على سبيل المثال، Oracle سيأخذ في الاعتبار فقط الطول الفعلي للسلسلة المخزنة في متغير لتخصيص الذاكرة بدلاً من الحجم المحدد للمتغير في جزء التصريح.
  • من الجيد دائمًا استخدام VARCHAR2 بدلاً من نوع بيانات CHAR لتحسين استخدام الذاكرة.
manager VARCHAR2(10) := ‘guru99';

شرح بناء الجملة:

  • أعلن بيان الإعلان أعلاه عن المتغير "manager" لنوع البيانات VARCHAR2 بالحجم الأقصى وهو 10 وعيّن القيمة "guru99" التي تبلغ 6 بايت. Oracle سيتم تخصيص ذاكرة 6 بايت فقط في هذه الحالة.
فاركار وهذا مرادف لنوع البيانات VARCHAR2.

  • من الممارسات الجيدة دائمًا استخدام VARCHAR2 بدلاً من VARCHAR لتجنب التغييرات السلوكية.
manager VARCHAR(10) := ‘guru99';

شرح بناء الجملة:

  • أعلن بيان الإعلان أعلاه عن المتغير "manager" لنوع بيانات VARCHAR بالحجم الأقصى وهو 10 وعيّن القيمة "guru99" التي تبلغ 6 بايت. Oracle سيتم تخصيص ذاكرة 6 بايت فقط في هذه الحالة. (على غرار VARCHAR2)
نشار نوع البيانات هذا هو نفس نوع بيانات CHAR، لكن مجموعة الأحرف ستكون لمجموعة الأحرف الوطنية.

  • يمكن تعريف مجموعة الأحرف هذه للجلسة باستخدام NLS_PARAMETERS.
  • يمكن أن تكون مجموعة الأحرف إما UTF16 أو UTF8.
  • تقييد الحجم هو 1-2000 بايت.
native NCHAR(10);

شرح بناء الجملة:

  • يعلن بيان الإعلان أعلاه عن المتغير 'native' لنوع البيانات NCHAR بالحجم الأقصى 10.
  • يعتمد طول هذا المتغير على (عدد الأطوال) لكل بايت كما هو محدد في مجموعة الأحرف.
نفارتشار2 نوع البيانات هذا هو نفس نوع البيانات VARCHAR2، ولكن مجموعة الأحرف ستكون من مجموعة الأحرف الوطنية.

  • يمكن تعريف مجموعة الأحرف هذه للجلسة باستخدام NLS_PARAMETERS.
  • يمكن أن تكون مجموعة الأحرف إما UTF16 أو UTF8.
  • تقييد الحجم هو 1-4000 بايت.
Native var NVARCHAR2(10):='guru99';

شرح بناء الجملة:

  • يعلن بيان الإعلان أعلاه عن المتغير 'Native_var' من نوع البيانات NVARCHAR2 بالحجم الأقصى 10.
طويلة وطويلة يُستخدم نوع البيانات هذا لتخزين نص كبير أو بيانات أولية يصل حجمها الأقصى إلى 2 جيجابايت.

  • وتستخدم هذه بشكل رئيسي في قاموس البيانات.
  • يتم استخدام نوع البيانات LONG لتخزين بيانات مجموعة الأحرف، بينما يتم استخدام LONG RAW لتخزين البيانات بتنسيق ثنائي.
  • يقبل نوع البيانات LONG RAW كائنات الوسائط والصور وما إلى ذلك، بينما يعمل LONG فقط على البيانات التي يمكن تخزينها باستخدام مجموعة الأحرف.
Large_text LONG;
Large_raw LONG RAW;

شرح بناء الجملة:

  • يعلن بيان الإعلان أعلاه عن المتغير 'Large_text' من نوع البيانات LONG و'Large_raw' من نوع البيانات LONG RAW.

ملحوظة: لا ينصح باستخدام نوع البيانات LONG Oracle. بدلاً من ذلك، يجب تفضيل نوع البيانات LOB.

نوع بيانات رقم PL/SQL

يخزن هذا النوع من البيانات أرقامًا ثابتة أو أرقامًا عشرية بدقة تصل إلى 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' كنوع بيانات منطقي. سيكون مخرجات الكود إما صحيحة أو خاطئة بناءً على مجموعة الشروط.

نوع بيانات التاريخ PL/SQL

يقوم نوع البيانات هذا بتخزين القيم بتنسيق التاريخ، مثل التاريخ والشهر والسنة. عندما يتم تعريف متغير بنوع بيانات 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 يفضل LOB بدلاً من نوع البيانات LONG لأنه أكثر مرونة من نوع البيانات LONG. فيما يلي المزايا الرئيسية القليلة لـ LOB مقارنة بنوع البيانات الطويلة.

  • يقتصر عدد الأعمدة في الجدول الذي يحتوي على نوع بيانات LONG على 1، بينما لا يحتوي الجدول على قيود على عدد الأعمدة التي تحتوي على نوع بيانات LOB.
  • تقبل أداة واجهة البيانات نوع بيانات LOB الخاص بالجدول أثناء النسخ المتماثل للبيانات، ولكنها تتجاهل العمود LONG من الجدول. تحتاج هذه الأعمدة الطويلة إلى النسخ المتماثل يدويًا.
  • يبلغ حجم العمود LONG 2 جيجابايت، بينما يمكن لـ LOB تخزين ما يصل إلى 128 تيرابايت.
  • Oracle تعمل باستمرار على تحسين نوع البيانات LOB في كل إصدار من إصداراتها وفقًا للمتطلبات الحديثة، في حين أن نوع البيانات LONG ثابت ولا يحصل على العديد من التحديثات.

لذا، فمن الأفضل دائمًا استخدام نوع بيانات LOB بدلاً من نوع بيانات LONG. فيما يلي أنواع بيانات LOB المختلفة. يمكنها تخزين ما يصل إلى حجم 128 تيرابايت.

  1. BLOB
  2. كلوب و نكلوب
  3. ملف
نوع البيانات Descriptأيون بناء الجملة
BLOB يخزن هذا النوع من البيانات بيانات LOB بتنسيق ملف ثنائي يصل إلى الحد الأقصى للحجم وهو 128 تيرابايت. ولا يخزن هذا النوع البيانات بناءً على تفاصيل مجموعة الأحرف، وبالتالي يمكنه تخزين البيانات غير المنظمة مثل كائنات الوسائط المتعددة والصور وما إلى ذلك.
Binary_data BLOB;

شرح بناء الجملة:

  • في ما سبق، تم تعريف المتغير "Binary_data" باعتباره BLOB.
كلوب و نكلوب يقوم نوع بيانات CLOB بتخزين بيانات LOB في مجموعة الأحرف، بينما يقوم NCLOB بتخزين البيانات في مجموعة الأحرف الأصلية. نظرًا لأن أنواع البيانات هذه تستخدم التخزين المستند إلى مجموعة الأحرف، فلا يمكنها تخزين البيانات مثل الوسائط المتعددة والصور وما إلى ذلك التي لا يمكن وضعها في سلسلة أحرف. الحد الأقصى لحجم أنواع البيانات هذه هو 128 تيرابايت.
Charac_data CLOB;

شرح بناء الجملة:

  • في ما سبق، تم تعريف المتغير "Charac_data" كنوع بيانات CLOB.
ملف
  • BFILE هي أنواع البيانات التي تخزن بيانات التنسيق الثنائي غير المنظم خارج قاعدة البيانات كملف نظام تشغيل.
  • حجم ملفات BFILE محدود بالنسبة لنظام التشغيل، وهي ملفات للقراءة فقط ولا يمكن تعديلها.

الملخص

لقد قمنا بتغطية أنواع البيانات البسيطة المختلفة المتوفرة في PL / SQL إلى جانب بناء جملها. سنتعلم المزيد عن أنواع البيانات المعقدة في مواضيع أخرى.