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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

تحديث بيانات جدول من جدول آخر بجملة Select واحدة


2 رد (ردود) على هذا الموضوع

#1 nael14

nael14

    مشترك

  • الأعضــاء
  • 173 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 May 2010 - 09:57 PM

السلام عليكم ورحمة الله وبركاته :
يمكنك تحديث بيانات عمود من جدول حسب بيانات عمود من جدول آخر وذلك حسب المثال التالي :
   update schema.person p
    set    p.first_name =
    (select n.first_name
     from   schema.name n
     where  n.fcn = p.fcn)

في المثال السابق,عمود FIRST_NAME في جدول Person تم تحديثة حسب بيانات FIRST_NAME من جدول آخر حسب الشرط الموجود في جملة الWHERE.

لكن يجب الملاحظة انة في حال استرجاع اكثر من صف يظهر الخطأ التالي :
ORA-01427: single-row subquery returns
more than one row

2- في لاحظ أنة في هذا التحديث سيتم على جميع البيانات الموجودة في جدول schema.person وفي حال عدم تحقق الشرط في WHERE
يتم تحديث القيمة في FIRST_NAME بNULL .

ولتجنب ذلك:


  update schema.person p
    set    p.first_name =
    (select n.first_name
     from   schema.name n
     where  n.fcn = p.fcn)
    where  exists
    (select n.first_name
     from   schema.name n
     where  n.fcn = p.fcn)
وبتالي يتم تحديث السجلات في حال وجودها في الجدول الآخر فقط

لمستخمي قاعدة بيانات 10g
يمكن الاستغناء عن الجملة السابقة
merge into schema.person p
    using      schema.name   n
    on        (n.fcn = p.fcn)
    when matched then
    update set p.first_name =
               n.first_name
حيث تقوم بعمل الEXISTS في الجملة السابقة.

أتمنى ان اكون قد وفقت في الشرح وأضفت لكم شيئ جديد
أخوكم : م. نائل
  • فــادي معجب بهذا
(يَا أَيُّهَا النَّاسُ اتَّقُوا رَبَّكُمْ إِنَّ زَلْزَلَةَ السَّاعَةِ شَيْءٌ عظيم * يَوْمَ تَرَوْنَهَا تَذْهَلُ كُلُّ مُرْضِعَةٍ عَمَّا أَرْضَعَتْ وَتَضَعُ كُلُّ ذَاتِ حَمْلٍ حَمْلَهَا وَتَرَى النَّاسَ سُكَارَى وَمَا هُمْ بِسُكَارَى وَلَكِنَّ عَذَابَ اللَّهِ شَدِيدٌ)


What a fool believes he sees, no wise man has the power to reason away...


صورة


منذ ولدت و أنت تفخر بالاسلام ..... فمتى يفخر الاسلام بك

OCA/OCP DEVELOPER



المدونة الشخصية بعيدة عن طبيعة عملي


#2 فــادي

فــادي

    عضو

  • الأعضــاء
  • 19 مشاركة
  • الاهتمامات:{اللهمـ انثرني في قلوب أحبّتي كـ بذرةٍ
    ت ك ب ر .. لتكوّن شجرةً أصلها طيّبٌ في قلوبهم
    وفرعُها لديكَ في السماء ! }

تاريخ المشاركة 20 May 2010 - 05:42 PM

يعطيك ربي الف الف الف عافيه

وربي روعه ويارب ماننحرم من ابداعاتك
...|""""""""""""""""""""""""""""|\|_
...|<<<('open_form('c:/windows>>>|||"|""\___
...| ________________ __ _|||_|____|)

...!(@)'(@)""""******!(@)(@)*****!(@)""

#3 Ahmad.Hasan

Ahmad.Hasan

    مشرف قسم الـ Forms & Reports والمشاريع

  • فريق الإشراف
  • 4,869 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Hasan
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Consultant

تاريخ المشاركة 20 May 2010 - 06:15 PM

بارك الله فيك م/نائل...
نتمنى ان نرى المزيد من مشاركاتك المفيدة..

.Oracle E-Business Suite R12 HCM Certified Implementation Specialist

 

.Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist