Oracle أنواع بيانات PL/SQL: منطقية، رقم، تاريخ [مثال]
⚡ ملخص ذكي
تحدد أنواع بيانات PL/SQL كيفية Oracle تخزن هذه البيانات كل قيمة في كتلة، وتتعامل معها، وتقيدها. وهي تُصنف إلى عائلات من الأحرف، والأرقام، والقيم المنطقية، والتواريخ، والكائنات الكبيرة (LOB)، ولكل منها تنسيق تخزين خاص بها، وحدود حجم، وقواعد تعيين.

ما هي أنواع بيانات PL/SQL؟
أنواع البيانات في لغة PL/SQL، يتم تحديد كيفية تخزين البيانات ومعالجتها والتعامل معها بواسطة Oracle أثناء التخزين والمعالجة. ترتبط أنواع البيانات بتنسيق تخزين محدد وقيود نطاق. Oracleيتم تعيين نوع بيانات لكل قيمة أو ثابت.
الفرق الرئيسي بين PL/SQL و SQL تقتصر أنواع البيانات في لغة SQL على أعمدة الجداول، بينما تُستخدم أنواع البيانات في لغة PL/SQL في... كتل بل / SQLالمزيد حول هذا لاحقًا في البرنامج التعليمي.
فيما يلي رسم تخطيطي يوضح الأنواع المختلفة Oracle أنواع بيانات PL/SQL:

نوع بيانات حرف PL/SQL
يخزن هذا النوع من البيانات الأحرف الأبجدية الرقمية بتنسيق نصي. يجب دائمًا وضع القيم الحرفية بين علامتي اقتباس مفردتين عند إسنادها إلى نوع بيانات CHARACTER.
يتم تصنيف نوع بيانات الشخصية هذا أيضًا على النحو التالي:
- نوع بيانات CHAR (حجم سلسلة ثابت)
- نوع البيانات VARCHAR2 (حجم السلسلة المتغير)
- نوع البيانات VARCHAR
- NCHAR (حجم السلسلة الثابتة الأصلي)
- NVARCHAR2 (حجم السلسلة المتغير الأصلي)
- خام طويل وطويل
| نوع البيانات | الوصف | بناء الجملة |
|---|---|---|
| CHAR | يخزن هذا النوع من البيانات قيمة نصية، ويتم تحديد حجم السلسلة عند تعريفها. متغير.
|
grade CHAR; manager CHAR (10):= 'guru99'; شرح بناء الجملة:
|
| فاركار 2 | يخزن هذا النوع من البيانات سلسلة نصية، لكن طولها غير ثابت.
|
manager VARCHAR2(10) := 'guru99'; شرح بناء الجملة:
|
| فاركار | وهذا مرادف لنوع البيانات VARCHAR2.
|
manager VARCHAR(10) := 'guru99'; شرح بناء الجملة:
|
| نشار | هذا النوع من البيانات هو نفسه نوع CHAR، ولكن مجموعة الأحرف هي مجموعة الأحرف الوطنية.
|
native NCHAR(10);
شرح بناء الجملة:
|
| نفارتشار2 | هذا النوع من البيانات هو نفسه VARCHAR2، ولكن مجموعة الأحرف هي مجموعة الأحرف الوطنية.
|
Native_var NVARCHAR2(10):= 'guru99'; شرح بناء الجملة:
|
| خام طويل وطويل | يخزن هذا النوع من البيانات نصوصًا كبيرة أو بيانات خام يصل حجمها الأقصى إلى 2 جيجابايت.
|
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' كنوع بيانات منطقي (BOOLEAN). ستكون قيمة الناتج إما صحيحة أو خاطئة بناءً على الشرط المحدد.
نوع بيانات التاريخ PL/SQL
يخزن هذا النوع من البيانات القيم بتنسيق التاريخ، أي اليوم والشهر والسنة. عند تعريف متغير بنوع بيانات التاريخ، يمكنه تخزين معلومات الوقت؛ ويُضبط الوقت افتراضيًا على 12:00:00 إذا لم يُحدد. يجب وضع القيم بين علامتي اقتباس عند إسنادها.
المعيار Oracle تنسيق الوقت للإدخال والإخراج هو 'DD-MON-YY'، والذي يتم تعيينه في NLS_PARAMETERS (NLS_DATE_FORMAT) على مستوى الجلسة.
newyear DATE:= '01-JAN-2015'; current_date DATE:= SYSDATE;
شرح بناء الجملة:
- تم تعريف المتغير 'newyear' كنوع بيانات DATE وتم تعيين القيمة 1 يناير 2015 له.
- يُعلن الإعلان الثاني عن 'current_date' كنوع بيانات DATE ويُعيّن تاريخ النظام الحالي.
- يحتوي كلا المتغيرين على معلومات زمنية.
نوع بيانات PL/SQL LOB
يُستخدم هذا النوع من البيانات بشكل أساسي لتخزين ومعالجة كتل كبيرة من البيانات غير المهيكلة مثل الصور وملفات الوسائط المتعددة. Oracle يفضل استخدام نوع البيانات LOB على نوع البيانات LONG لأنه أكثر مرونة. وتتمثل المزايا الرئيسية لـ LOB على LONG فيما يلي:
- يقتصر الجدول على عمود واحد من نوع LONG، بينما لا يوجد قيد على عدد أعمدة LOB.
- تقبل أدوات واجهة البيانات بيانات LOB أثناء النسخ المتماثل ولكنها تتجاهل أعمدة LONG، والتي يجب نسخها يدويًا.
- يخزن العمود الطويل ما يصل إلى 2 جيجابايت، بينما يمكن أن يخزن العمود الكبير ما يصل إلى 128 تيرابايت.
- Oracle يستمر في تحسين نوع بيانات LOB مع كل إصدار، بينما يبقى نوع LONG دون تغيير إلى حد كبير.
لذا يُفضّل دائمًا استخدام نوع بيانات LOB بدلًا من LONG. يمكن لأنواع بيانات LOB المختلفة الموضحة أدناه تخزين ما يصل إلى 128 تيرابايت:
- BLOB
- كلوب و نكلوب
- ملف
| نوع البيانات | الوصف | بناء الجملة |
|---|---|---|
| BLOB | يخزن هذا النوع من البيانات بيانات LOB بتنسيق ملف ثنائي بحد أقصى 128 تيرابايت. ولا يخزن البيانات بناءً على تفاصيل مجموعة الأحرف، لذا يمكنه تخزين البيانات غير المهيكلة مثل كائنات الوسائط المتعددة والصور. |
Binary_data BLOB;
شرح بناء الجملة:
|
| كلوب و نكلوب | يخزن نوع البيانات CLOB بيانات LOB باستخدام مجموعة الأحرف، بينما يخزن نوع البيانات NCLOB البيانات باستخدام مجموعة الأحرف الأصلية. ولأن هذين النوعين يستخدمان تخزينًا قائمًا على مجموعة الأحرف، فإنهما لا يستطيعان تخزين بيانات مثل الوسائط المتعددة أو الصور. الحد الأقصى لحجم البيانات هو 128 تيرابايت. |
Charac_data CLOB;
شرح بناء الجملة:
|
| ملف |
|
