الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

أريد حذف السجلات المكررة من الداتابيس ..؟؟

Featured Replies

بتاريخ:

السلام عليكم
المطلوب : أريد عمل فحص يومي عن طريق job أو ماشابه لحذف السجلات المكررة من الداتا بيس , كيف يتم ذلك ..؟
وشكرا لكم

تم تعديل بواسطة PrisonBreak

بتاريخ:

حياك الله اخي

جرب هذه الجملة:
DELETE FROM TABLENAMEThis statement delete duplicated rows in tables:
------------------------------------------------------------------------------------------------------------

DELETE FROM TABLENAME
WHERE ROWID IN (SELECT ROWID 
FROM (SELECT ROW_NUMBER() OVER (PARTITION BY dup_col ORDER BY dup_col_1) rnk
FROM   TABLENAME)
			WHERE rnk>1);



------------------------------------------------------------------------------------------------------------

To test it :
1.

create table hasan_test
(f1 number(2),
f2 varchar2(30));

2. 
              
insert into hasan_test values(1, 'a');
insert into hasan_test values(1, 'a');
insert into hasan_test values(1, 'a');
insert into hasan_test values(2, 'b');
insert into hasan_test values(2, 'b');
insert into hasan_test values(2, 'b');
insert into hasan_test values(2, 'b');
insert into hasan_test values(3, 'c');
insert into hasan_test values(3, 'c');
insert into hasan_test values(4, 'd');
               
DELETE FROM hasan_test WHERE ROWID IN (SELECT ROWID FROM (SELECT ROW_NUMBER() OVER (PARTITION BY f1, f2 ORDER BY f1, f2) rnk
                                    FROM hasan_test) WHERE rnk>1);


اتمنى ان تفيدك

بتاريخ:
  • كاتب الموضوع

متى يتم تنفيذ هذا البروسيجر أخي بال أوراكل ..؟
هل أقوم أنا بتنفيذه كل مرة أو يتم تنفيذه بشكل تلقائي ..
أرجو التوضيح
وألف شكر لكم أخوتي على المساعدة ..

بتاريخ:

السلام عليكم
اما بتنفذه يوميا بشكب يدوري او بتعمل job...
ولكن من الاساس لماذا يوجد ليدك بيانات مكررة ؟؟
يوجد خطأ معين في الــ Structure.

بتاريخ:
  • كاتب الموضوع
السلام عليكم
اما بتنفذه يوميا بشكب يدوري او بتعمل job...
ولكن من الاساس لماذا يوجد ليدك بيانات مكررة ؟؟
يوجد خطأ معين في الــ Structure.


كيف يمكن أن أتجنب تكرار السجلات في الجداول التي لا تحتوي على مفتاح رئيسي ....
أنا أستخدم نظام الجدول الهيستوري وهذا الجدول لا يحتوي على مفتاح رئيسي فكل مرة يعمل على اضافة سجل جديد حتى لو لم أقم بتغيير أي قيمة ..
بمجرد الضغط على زر حفظ فانه تلقائيا يقوم باضافة سجل جديد حتى لو لم أقم بتغيير أي قيمة في الفورم الخاص بهذا الجدول ..

أنا أعلم أن هناك كود يستخدم في هذه الحالة وهو أنه في حالة الضغط على زر حفظ دون تغيير أي قيمة فانه لن يقوم باضافة سجل في الجدول الهيستوري ...
ولكن لم أستخدمه مسبقاً ..
أرجو أخي أحمد ان تفيدني بهذا الكود لأنه سيحل لي مشاكل كثيرة أنا في غنى عنها ...
وتحياتي لك على المساعدة ..
أخوك
بريزون بريك
بتاريخ:

السلام عليكم
اخي العزيز..
لست بحاجه الى كود..
كل ما في الأمر ان جملة الــ Insert الخاصة بتخزين البيانات في جدول الــ History اكتبها في حالة الإدخال فقط ولا تكتبها في حالة التعديل...
مثلا اكتبيها على Post-Insert ولا تكتبها في Post-Update...

بتاريخ:
  • كاتب الموضوع
السلام عليكم
اخي العزيز..
لست بحاجه الى كود..
كل ما في الأمر ان جملة الــ Insert الخاصة بتخزين البيانات في جدول الــ History اكتبها في حالة الإدخال فقط ولا تكتبها في حالة التعديل...
مثلا اكتبيها على Post-Insert ولا تكتبها في Post-Update...


أخي أحمد ..
الكود ناجح بالنسبة للادخال ولا مشكلة في ذلك ..
وضعت الكود في فورم الادخال على ان يتم اضافة السجل في الجدول الرئيسي والجدول الهيستوري في نفس الوقت ..
لكن المشكلة في التعديل ..
عندما أقوم بفتح فورم التعديل وعمل حفظ فانه تلقائيا يقوم باضافة سجل على الجدول الهيستوري حتى لو لم أقم بعمل أي تعديل على الداتا الموجودة في الفورم ..
أي أنني بمجرد فتح الفورم والضغط على زر حفظ فانه تلقائيا يقوم باضافة سجل في الهيستوري ..

المطلوب : أريده أن يقوم بادراج سجل في الهيستوري فقط في حالة التعديل على الداتا الموجودة في الفورم ..
أرجو ان تكون الفكرة واضحة ..
تحياتي أخي أحمد
بريزون بريك
بتاريخ:
  • كاتب الموضوع

أي أنني أستخدم الكود في فورم الادخال وفي فورم التعديل أيضاً ..
فورم الادخال لا مشكلة فيه ..
المشكلة فقط في فورم التعديل ..

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.