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