0 تصويتات
في تصنيف منوعات بواسطة (2.1مليون نقاط)

تعريف المتغيرات وأهميتها واستخداماتها وأنواع المتغيرات في لغة PL/SQL؟ ما هو الفرق بين المتغيرات والثوابت؟ أنواع البيانات المتاحة في أوراكل؟

عزيزي الزائر مرحبا بك إلى موقع ” الــتــرتيــــــــــب ‟ حيث نقدم لكم هنا شرح مفصل عن اوراكل (قواعد البيانات) حيث تعتبر اللغة PL/SQL هي لغة البرمجة في نظام أوراكل ، وهي أداة برمجية قوية، وكلمة PL/SQL اختصاراً لـ (Procedure Language/Structure Query Language )، وتستخدم هذه اللغة لتجهيز نظام Oracle عن طريقة معالجة التسجيلات ، وتستخدم أيضاً في أدوات التطوير المنتجة من قبل شركة Oracle، وهي تعتبر أساس برنامج بناء النماذج Oracle Forms و Oracle Reports. وتستخدم هذه اللغة أيضاً لتعريف نموذج ما، والقيام ببعض الحسابات الخاصة في تقرير ما، ومن أجل التسجيلات مزايا لغة PL/SQL. والآن نقدم لكم هنا شرح مفصل للإجابة عن السؤال التالــــــــــي: تعريف المتغيرات وأهميتها واستخداماتها وأنواع المتغيرات في لغة PL/SQL؟ ما هو الفرق بين المتغيرات والثوابت؟ أنواع البيانات المتاحة في أوراكل؟

  • أولاً: تعريف المتغيرات : 

إن المتغير هو موقع تخزين - من أجل حفظ قيمة - يمكن أن يتم إسناد قيمة إليه ، وسمي متغبر لأنه يمكن أن تتغير قيمته أثناء تنفيذ البرنامج . 

  • ثانياً: أهمية المتغيرات : 

1. حجز مكان في الذاكرة للمتغير .

2. إعلام المترجم بنوع البيانات التي يمكن أن تخزن في المتغير .

  • ثالثاً: استخدامات المتغيرات : 

1. تخزين مؤقت للبيانات .

2. التعامل مع قيم مخزنة .

3. إعادة استخدام البيانات نتيجة تغيرات داخل وأثناء البرنامج .

4. الإختصار وسهولة التعديل والصيانة وذلك من استخدام (%type) و (%rowtype) سيأتي شرحها لاحقاً ، و من خلالهما يمكن تعريف متغير حسب نوع عمود أو صف في قاعدة البيانات مما يتيح قدر كبير من المرونة دون التقيد بنوع معين من البيانات.

  • رابعاً: شروط تسمية المتغيرات : 

1. اسم المتغير يجب أن يبدأ بحرف.

2. يمكن أن يحتوي اسم المتغير على حروف وأعداد أو شرطة سفلية أو الحرف $ .

3. لا يحتوي اسم المتغير على رموز خاصة .

4. لا يحتوي اسم المتغير على مسافات .

5. لا يكون اسم المتغير ضمن الأسماء المحجوزة في اللغة مثل Declare, for, if ... الخ.

6. لغة PL/SQL لا تفرق بين الحروف الكبيرة والصغير فمثلاً x لا يختلف عن X .

7. يفضل أن يكون اسم المتغير ذو معنى .

  • خامساً: أنواع المتغيرات في لغة PL/SQL : 

تنقسم المتغيرات إلى قسمين أساسين:

أحدهما: متغيرات PL/SQL : وتحتوي على عدة أنواع منها :

١. المفردة Scalar.

٢. المركبة(المعقدة) Composite .

٣. المشار بها ( عناوين ) Reference .

٤. ذات الأحجام الكبيرة LOB (Large Object) .

والآخـــــر: متغيرات ليست PL/SQL : مثل متغيرات : host , Bind.

  • سادساّ: كيفية تعريف المتغيرات في لغة PL/SQL : 

يتم تعريف المتغيرات في لغة PL/SQL في جزء التصريح والشكل العام للتعريف هو : 


Variable_name [CONSTANT] datatype) precision); 

اسم المتغير [قيـــــد] (الدقة أو الطول) نوع البيانات;


المفردة المقصود منها هنا: أن لا يحتوي قيمة المتغير سوى قيمة واحدة فقط. مثل :

أ. البيانات الرقمية : Number .

ب. البيانات النصية : Char , Varchar2 .

ج. البيانات البوليانية : Boolean .

د. البيانات الزمنية (التاريخ) : Date .

هـ. الاستثناءات : Exception . وغيرها. 

① تعريف المتغيرات الرقمية : 

يمكن أن تتضمن البيانات الرقمية وسيطين اثنين : الدقة (الطول الكامل للقيمة) و القيمة العشرية (عدد الأرقام الممكن وضعها إلى يسار أو يمين الفاصلة العشرية .

Salary integer(3);

summary number(3,2);

② تعريف المتغيرات النصية :

يمكن تعريف البيانات النصية بشكل عادي، ويتكون البيانات النصية من نمطين :

CHAR 2- VARCHAR2 . والشكل العام لتعريف البيانات النصية :

Job char(3);

Name varchar2(30);

  • سابعاً: أنواع البيانات المتاحة في أوراكل DATATYPES :-

أ. VARCHAR2(size): نوع البيانات متحول حرفي متغير الطول يجب أن يكون size طول السلسلة بين حرف واحد 1على الأقل و4000 محرف على الأكثر.

ب. CHAR(size): نوع البيانات متحول حرفي ثابت الطول يجب أن يكون size طول السلسلة بين حرف واحد 1على الأقل و2000 محرف على الأكثر.

ج. NUMBER(p , s): متحول رقمي متغير الطول له الدقة P والمقياس S حيث Pأكبر طول لرقم قبل الفاصلة العشرية وS أكبر طول لرقم بعد الفاصلة العشرية من جهة اليمين يأخذ p مجال القيم بين 1 إلى 38 أما S فيأخذ مجال القيم بين-84 وبين 127.

د. DATE: نوع البيانات تاريخ ووقت بين January 1. 4712B.C. وبين December 31.9999A.D.

هـ. LONG: نمط رقمي متغير الطول من البيانات يأخذ يصل حجمه إلى حتى 2 جيجا بايت.

و. CLOB: متحول حرفي يصل حجمه إلى حتى 4 جيجا بايت. 

ق. ROW: متحول ثنائي يأخذ طول محدد size يمكن جعله حتى 2000 كحد أقصى. 

ك. LONG ROW: متحول ثنائي متغير الطول يصل حجمه حتى 2 جيجا بايت.

ل. BLOB: بيانات ثنائية يصل حجمها حتى 4 جيجا بايت.

م. BFILE: بيانات ثنائية تخزن ضمن ملف خارجي يصل حجمها حتى 4 جيجا بايت.

يمكن وضع القيود على المتغيرات معرّفة في كتلة الترميز ، ويُعرف القيد بأنه شرط يتم وضعه على المتغير. ويوجد نوعان شائعان من القيود وهما :

أ. CONSTANT : وهذا القيد يتأكد من أن القيمة لم تتغير بعد نسب قيمة أولية للمتغير . فإذا حاولت تعليمة ما تغيير القيمة ، سيحدث خطأ .

ب. NOT NULL : هذا القيد يتأكد من أن المتغير يحتوى على دائماً على قيمة ، فإذا حاولت تعليمة ما نسب قيمة فارغة إلى المتغير ، سيحدث خطأ.

ثامناً: كيفية اسناد قيم للمتغيرات: 

توجد طريقتان لنسب القيم للمتغيرات في لغة PL/SQL :

معامل النسب (:=) مثل :

Salary number := 15;

الكلمة المفتاحية (INTO) وتستخدم في تعليمة (SELECT) و (FETCH) ، وسيأتي شرحه بالتفصيل لاحقاً .

يمكن وضع القيود على المتغيرات معرّفة في كتلة الترميز ، ويُعرف القيد بأنه شرط يتم وضعه على المتغير. ويوجد نوعان شائعان من القيود وهما :

  1. أولهما. CONSTANT : وهذا القيد يتأكد من أن القيمة لم تتغير بعد نسب قيمة أولية للمتغير . فإذا حاولت تعليمة ما تغيير القيمة ، سيحدث خطأ .
  2. والآخر. NOT NULL : هذا القيد يتأكد من أن المتغير يحتوى على دائماً على قيمة ، فإذا حاولت تعليمة ما نسب قيمة فارغة إلى المتغير ، سيحدث خطأ . 

  • اسناد قيم للمتغيرات :

توجد طريقتان لنسب القيم للمتغيرات في لغة PL/SQL :

معامل النسب (:=) مثل :

Salary number := 15;

الكلمة المفتاحية (INTO) وتستخدم في تعليمة (SELECT) و (FETCH) ، وسيأتي شرحه بالتفصيل لاحقاً .

  • تعريف متغيرات من نوع تسجيلة PL/SQL ومتغيرات المجموعات :

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

  • الفوائد الهامة من هذه الميزة : 

يستطيع المطوّر أن يعرف بشكل آلي متغير بنفس مواصفات بيانات عمود جدول أو متغير من نوع مؤشر ، وبدون معرفة المواصفات لبيانات العمود أو المؤشر .

يستطيع المطوّر إعداد المتغيرات لمؤشر ما أو تسجيلة جدول بتعليمة واحدة . وستمتلك المتغيرات نفس المواصفات للجدول أو متغيرات المؤشر .

  • * الخاصية أو الأداة (%TYPE) :

تعتبر الأداة (%TYPE) أول أداة لتعريف متغير مجموعة ، والتي تسمح بتعريف متغير بنفس مواصفات عمود جدول بقاعدة البيانات ، والشكل العام للتعريف بهذه الأداة :

VARIABLE_NAME TABLE_CURSOR_NAME.COLUMN_NAME%TYPE ;

اسم المتغير اسم الجدول أو المؤشر اسم العمود%TYPE ;

  • وفي ما يلي نأخذ مثالاً على ذلك :

كتلة برمجية لعرض اسم الموظف وراتبه من جدول الموظفين (EMP) ، بحيث يكون رقم الموظف يساوي 7782.

السطر الأول : كلمة مفتاحية (Declare) تحدد جزء التصريح والتعريف .

السطر الثاني : تعريف متغير واسمه (name)ونوع بياناته نفس نوع بيانات عمود(ename)من جدول(emp).

السطر الثالث : تعريف متغير واسمه (salary)ونوع بياناته نفس نوع بيانات عمود(sal)من جدول(emp).

السطر الرابع : كلمة مفتاحية (Begin) تحدد جزء التنفيذ .

السطر الخامس : جملة استعلام (select) يسترجع الاسم والراتب (ename) و(sal) .

السطر السادس : كلمة مفتاحية (into) لإسناد قيم للمتغيرات التي تم تعريفها في جزء التصريح (ename) و (salary) .

السطر السابع : أشرنا إلى استرجاع السجل يكون من جدول الموظفين (emp) .

السطر الثامن : جملة الشرط لاسترجاع السجل بحيث يكون رقم الموظف (empno) يساوي (7782) .

السطر التاسع : جملة الطباعة بحيث يطبع اسم الموظف وراتبه المسترجع من جملة الإستعلام السابقة .

السطر العاشر : كلمة مفتاحية (End) لإنهاء البرنامج أو كتلة الترميز وتنتهي بفاصلة منقوطة . 

  • * الخاصية أو الأداة (%ROWTYPE) :

الأداة (%ROWTYPE) ، وهي ثاني أداة لتعريف متغير مجموعة ، وتستخدم لتأسيس مصفوفة من المتغيرات مبنية على الأعمدة الموجودة في مؤشر ما أو جدول ما . والشكل العام للتعريف بهذه الأداة :

ARRAY_NAME TABLE/CURSOR_NAME%ROWTYPE ;

اسم المتغير اسم الجدول أو المؤشر %ROWTYPE; 

وفي ما يلي نأخذ مثالاً على ذلك :

كتلة برمجية لعرض اسم الموظف وراتبه ووظيفته من جدول الموظفين (EMP) ، بحيث يكون رقم الموظف يساوي 7782 .( باستخدام الأداة %ROWTYPE) :

كتلة برمجية تطبع نص وقيمة المتغير (x) = 1500

كتلة برمجية تسترجع اسم الموظف وراتبه واسم القسم الذي يشتغل فيه وطباعته ، بحيث يكون رقم الموظف يساوي (7782) : باستخدام الأداة (%type) :

كتلة برمجية يتم فيه طباعة اسم الموظف ووظيفته الذي يحمل الرقم (7782) . ولكن باستخدام الأداة (%ROWTYPE). 

1 إجابة واحدة

0 تصويتات
بواسطة (2.1مليون نقاط)
 
أفضل إجابة
تعريف المتغيرات وأهميتها واستخداماتها وأنواع المتغيرات في لغة PL/SQL؟ ما هو الفرق بين المتغيرات والثوابت؟ أنواع البيانات المتاحة في أوراكل؟

أسئلة متعلقة

0 تصويتات
1 إجابة
سُئل نوفمبر 6، 2023 في تصنيف منوعات بواسطة ترتيب الحلول (2.1مليون نقاط)
مرحبًا بكم في موقع ترتـيـب الحـلول، حيث يمكنكم طرح الأسئلة وانتظار الإجابة عليها من قبل المستخدمين الآخرين.

التصنيفات

...