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

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

صورة
- - - - -

خطأ فى تنفيذ كود Merge


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

#1 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 10 September 2007 - 02:15 AM

create table ddd as select*from departments;

و بعد عمل جدول ال ddd الذى هو نسخة مطابقة لل Departments قمت بعمل ببعض التغير فيه :-

update ddd
set department_id=111
where department_name like'%e%';

و تم تغير 16 صف حيث تحول ال department_id - اللى فى ال 16 صف دول - الى رقم 111

ثم قمت بعمل ال Merge التالية :-

merge into ddd d using departments dd
on (d.department_id=dd.department_id)
when matched then update set
d.DEPARTMENT_ID=dd.DEPARTMENT_ID,
d.DEPARTMENT_NAME=dd.DEPARTMENT_NAME,
d.MANAGER_ID=dd.MANAGER_ID,
d.LOCATION_ID=dd.LOCATION_ID
when not matched then insert values
(dd.DEPARTMENT_ID,dd.DEPARTMENT_NAME,
dd.MANAGER_ID,dd.LOCATION_ID);

فظهر لى هذا الخطأ الذى لا أفهم ما معناه و ما قصده منه :-

on (d.department_id=dd.department_id)
	*
ERROR at line 2:
ORA-38104: Columns referenced in the ON Clause cannot be updated:
"D"."DEPARTMENT_ID"

أرجو انا يقول لى أحد ما المشكلة هنا .... و كيفية حلها ...... شكراً و منتظر الرد


#2 nhamzehn

nhamzehn

    مشترك

  • الأعضــاء
  • 187 مشاركة
  • الاهتمامات:المطالعة

تاريخ المشاركة 10 September 2007 - 09:20 AM

ما بصير تحط عمود الjoin في جملة ال update لتصبح الجملة كالتالي:
merge into ddd d using departments dd
on (d.department_id=dd.department_id)
when matched then update set
d.DEPARTMENT_NAME=dd.DEPARTMENT_NAME,
d.MANAGER_ID=dd.MANAGER_ID,
d.LOCATION_ID=dd.LOCATION_ID
when not matched then insert values
(dd.DEPARTMENT_ID,dd.DEPARTMENT_NAME,
dd.MANAGER_ID,dd.LOCATION_ID);


انا قمت بحذف الجملة d.DEPARTMENT_ID=dd.DEPARTMENT_ID,
اللي بعد ال update
وبهيك راح تشتغل ان شاء الله
سبحان الله وبحمده سبحان الله العظيم

اللهم لك الحمد والشكر كما ينبغي لجلال وجهك وعظيم سلطانك

#3 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 10 September 2007 - 07:31 PM

بارك الله فيك أخى nhamzehn هذه كنت فعلاً المعضلة ، و ماخدتش بالى منها خالص
شكراً جزيلاً