بتاريخ: 25 مايو 200817 سنة comment_129611 حذف السجلات المكررة من جدول declare كورسور يجمع السجلات المكررة من جدول cursor target_cur is select fcn from table1 group by fcn having count (fcn) > 1; hold_fcn varchar2(4); كورسور يستقبل حقل من السجل المكرر و يرتب البيانات تنازليا للابقاء على اخر سجل تم اضافته و حذف سابقيه cursor delete_cur (hold_fcn in varchar2) is select fcn, id from table1 where fcn = hold_fcn order by id desc for update nowait; delete_rec delete_cur%rowtype; first_fetch_sw varchar2(1); begin open target_cur; loop fetch target_cur into hold_fcn; exit when target_cur%notfound or target_cur%notfound is null; open delete_cur (hold_fcn); first_fetch_sw := 'Y'; loop fetch delete_cur into delete_rec; exit when delete_cur%notfound or delete_cur%notfound is null; if first_fetch_sw = 'Y' then first_fetch_sw := 'N'; else delete from table1 where current of delete_cur; end if; end loop; close delete_cur; end loop; close target_cur; commit; end; تقديم بلاغ
بتاريخ: 27 مايو 200817 سنة comment_129751 Create Table TBL ( TBL_ID Number(10), TBL_Name VarChar2(20), Constraint PK_TBL Primary Key(TBL_ID) ) / Insert Into TBL Values(1,'Ahmed'); Insert Into TBL Values(2,'Usif'); Insert Into TBL Values(3,'Sara'); Insert Into TBL Values(4,'Mohamed'); Insert Into TBL Values(5,'Ahmed'); Insert Into TBL Values(6,'Dina'); -- Ahmed من المفروض حذف السجل الذي يدعي -- Select * From TBL Where TBL_Name In(Select TBL_Name From TBL Group By TBL_Name Having Count(TBL_ID) > 1) تم تعديل 27 مايو 200817 سنة بواسطة MMA تقديم بلاغ
بتاريخ: 27 مايو 200817 سنة comment_129777 والحذف طبعاً يبقى كده : delete emp where ename in (select ename from emp where ename in (select ename from emp group by ename having count(empno)>1)) جزاك الله خيرا....... تقديم بلاغ
بتاريخ: 8 يونيو 200817 سنة كاتب الموضوع comment_130801 لكن المشكلة الاخ احمد ان هذا الكود يحذف السجلات المكررة مع السجل الاصلياي اذا كان هناك اي سجل مكرر اكثر من مرة يحذفه نهائيا ارجوا من لديه حل افضل ان يطرحه لتعم الفائدة تقديم بلاغ
بتاريخ: 9 يونيو 200817 سنة comment_130832 اخي الكريم / سالم يوجد مشاركات سابقة بخصوص هذا الموضوع ... اعمل بحث في المنتدى لو تكرمت . تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.