hanyfreedom بتاريخ: 9 سبتمبر 2007 تقديم بلاغ مشاركة بتاريخ: 9 سبتمبر 2007 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" أرجو انا يقول لى أحد ما المشكلة هنا .... و كيفية حلها ...... شكراً و منتظر الرد اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
nhamzehn بتاريخ: 10 سبتمبر 2007 تقديم بلاغ مشاركة بتاريخ: 10 سبتمبر 2007 ما بصير تحط عمود ال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وبهيك راح تشتغل ان شاء الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hanyfreedom بتاريخ: 10 سبتمبر 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 10 سبتمبر 2007 بارك الله فيك أخى nhamzehn هذه كنت فعلاً المعضلة ، و ماخدتش بالى منها خالص شكراً جزيلاً اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.