الانتقال إلى المحتوى

دوال ؟؟؟


Ahmad.Hasan

Recommended Posts

السلام عليكم
بماذا تستخدم هذ الدوال :

1- CONNECT BY
2- PRIOR



وياريت ارفاق مثال بسيط على سكيمة SCOTT.
وشكرا جزيلا...

تم تعديل بواسطة PALI.ORACLE
رابط هذا التعليق
شارك

السلام عليكم
اولا
connect by prior
دى بنستخدمها لما نكون عاوزين نعرف المديرين لموظف محدد يعنى بيجيب البيانات فى شكل هرمى
وليها اشكال مختلفه
انا هقولك مثال مثلااا على اليوزر hr
select last_name,employee_id,manager_id
from employees
start with employee_id=100
connect by prior employee_id=manager_id

فى المثال ده
رقم الموظف 100 المدير بتاعه ب null واحنا عاملين كونكت باى باريور رقم الموظف بيساوى رقم المدير

يبأه هنجيب كل الموظفين الى رقم المديرين بتوعهم ب100 هيطلع مثلا الموظف 201 المدير بتاعه ب100 بعدين هيدور على المدير الى رقمه 201 هيطلع رقم الموظف ب202 ويكون رقم مديره ب201 بعدين يشوف المدير الى رقمه 202 ويظهر قصاده رقم الموظف بتاعه وهياخدها بشكل هرمى كدده وطبعا قبل كل ده لازم يظهر الموظف 100 والدير بتاعه بnull

ولو عملنا الكود كده
select last_name,employee_id,manager_id
from employees
start with employee_id=100
connect by prior manager_id=employee_id
هنا هيظهر الموظفين الى ليهم نفس رقم المدير بتاع الموظف 100
يعنى الموظفين الى بnull وبرده قبل كل ده بيظهر الموظف رقم 100 والمدير بnull

دا تطبيق بسيط على connect by prior
والله اعلم
ياريت تكون فهمت حاجه

رابط هذا التعليق
شارك

السلام عليكم
أخي العزيز..
قمت بكتابة المثال التالي:

select ename,empno,mgr
from emp
start with empno=7788
connect by prior empno=mgr;



وظهرت هذه النتائج :

ENAME EMPNO MGR

scott 7788 7566

ADAMS 7876 7788



ما الذي حدث بالزبط ؟؟؟

وعند كتابة الجملة التالية :

select ename,empno,mgr
from emp
start with empno=7788
connect by prior mgr=empno;



وظهرت هذه النتائج :

ENAME EMPNO MGR

scott 7788 7566
JONES 7566 7839
KING 7839



ممكن توضيح ؟؟

تم تعديل بواسطة PALI.ORACLE
رابط هذا التعليق
شارك

اولا السلام عليكم

ثانيا انا اسف اوى ياباشمهندس لخبطت فى حاجه وانا بشرحلك المثال

انا هقولك من الاول على الامثله بتاعتك
select ename,empno,mgr
from emp
start with empno=7788
connect by prior empno=mgr;

هوا اولا بيبتدى يحسب انه بدأ من اول الموظف رقم 7788 علشان عملنا استارت وز فهيكون اول حاجه تظهر فى الناتج وهجيبله رقم المدير واسمه الاخير زى ماحنا عاملين فى جملة select
scott 7788 7566 وبعدين يبتدى يترجم الجمله بتاعت

connect by prior empno=mgr
ودى معناها
الموظف الى رقمه 7788 مدير على مين يعنى هيبأه هوا الاب
هنلاقيه موجود فى خانة المدير لما يكون رقم الموظف ب7876 وبعدين نشوف الرقم 7876 موجود فى خانة المدير لما يكون رقم الموظف بكام هنلاقى ان مفيش مدير رقمه 7876 يبأه نقف لحد الناتج ده

ADAMS 7876 7788

تانيا المثال التانى
select ename,empno,mgr
from emp
start with empno=7788
connect by prior mgr=empno;

هوا اولا بيبتدى يحسب انه بدأ من اول الموظف رقم 7788 علشان عملنا استارت وز فهيكون اول حاجه تظهر فى الناتج وهجيبله رقم المدير واسمه الاخير زى ماحنا عاملين فى جملة select
scott 7788 7566

ثانيا هيبتدى يترجم الجمله بتاعت connect by prior mgr=empno;

ودى معناها الموظف الى رقمه 7788 مين مديرينه وليس مدير على مين

يبأه عرفنا اول مدير ليه الى رقمه 7566 وبعدين نعتبر 7566 بأه ابن يعنى موظف و نشوف مين المدير بتاعه هيبأه رقمه 7839
JONES 7566 7839
بعدين نعتبر 7839 موظف ونشوف مين المدير بتاعه هنلاقى مالوش مدير يبأه نقف لحد كده
KING 7839



هوا دا التفسير السيلم بأذن الله
وجرب كده على اى مثال تانى ولو فى اى مشكله انا معاك

ولو عاوز شرح على مثال تانى انا موجود

ويارب يكون الشرح واضح

رابط هذا التعليق
شارك

السلام عليكم
أشكرك أخي أحمد على الشرح..
واشكرك أخي هاني على الرابط..
تحياتي للجميع

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية