tekamoka بتاريخ: 27 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 27 مارس 2007 السلام عليكم و رحمة الله و بركاتةالأخ العزيز أبو صالح أو طبعاً أى أخ معانااريدك ان تساعدنى فى موضوع و انت بإذن الله تعرفه.انا عايز افهم ال rowid و ايه فائدته ة ازاى بيفيد فى الحاجات المكررة.انت كنت رديت على واحد قبل كدة كان عايز يجيب المكرر من الجدول و انت اديت مثال و جربتة و اشتغل بس مش فاهم تقدر تشرحلى الموضوع جزاكم الله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abu_ezzat بتاريخ: 27 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 27 مارس 2007 أي جدول يتم تخليقة من قبل المستخدم فإن أوراكل تخلق معه تلقائيا حقل اسمه rowidوهو عبارة عن قيمة فريدةunique لكل سجل على حدةبعد تخليق الجدول إذا عملت sql < desc my_tableسوف تجد فقط الحقول التي أضفتها بنفسك بعد إضافتك أي سجلات لهذا الجدول يمكنك معرفة ال rowid sql > select rowid from my_tableيمكنك استخدام هذا الحقل في مسح السجلات المكررة فمثلا إذا عنك سجلين بنفس القيم وتريد أن تمسح واحد منهم فإنك تستخدم ال rowidsql < delete from my_table where rowid = 'myrowid' اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hanyfreedom بتاريخ: 27 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 27 مارس 2007 هل يوجد جدول فى ال dictionary به معلومات عن ال rowid ؟و بارك الله فيك يا أخ أبوعزت اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
tekamoka بتاريخ: 2 أبريل 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 2 أبريل 2007 اية يا جماعة مفيش حد يفدنا فى الموضوع دهالأخ أبو صالح نداء انسانى ) اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hassan978hmk بتاريخ: 4 أبريل 2007 تقديم بلاغ مشاركة بتاريخ: 4 أبريل 2007 (معدل) الأخ الكريما-لقيمة ROWID هي عبارة عن عنوان السطر المعني ضمن ملفات قاعدة البيانات وهذه القيمة لا تخزن في أي جدول ولكنها موجودة في INDEX الخاص بالجدول وذلك لمساعدة الاستعلام على الوصول للسطور المطلوبة بسرعة.-عندما تطلب القيمة ROWID بواسطة استعلام لا يقوم أوراكل باحضارها من INDEX ولكن يتماستنتاجها من الجدول.-عندما تطلب سطرا معينا بواسطة ROWID الخاص به كما يلي:select ename from emp where rowid=rowid_valueفإن عملية احضار السطر المطلوب تكون سريعة جدا لأنك حددت عنوان السطر بالتحديد ضمن القاعدةفلا يحتاج أوراكل للبحث ضمن كامل الجدول ولا حتى الاستعانة بالفهارس.-القيمة rowid لا علاقة لها بقيم الأعمدة ضمن السطر لأنها قيمة فيزيائية تتعلق بعنوان السطر على القرص الصلب ,فمثلا لو حذفت أحد السطور وقمت بإدخاله مرة ثانية فمن المستبعد جدا أن يكون له نفس rowid القديم.-هناك نوعان من rowid هما extended rowid و restricted rowid-القيمة rowid تتألف من أربعة حقول في حالة النوع extended هي حقل object id,file number,block number,row slot number-شرح بنية rowid يطول وهو موجود ضمن مسار DBA .والله أعلم تم تعديل 5 أبريل 2007 بواسطة hassan978hmk اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hassan978hmk بتاريخ: 4 أبريل 2007 تقديم بلاغ مشاركة بتاريخ: 4 أبريل 2007 بالنسبة للسطور المكررة وكما قلت بما أن ROWID ليس له علاقة بقيم السطر فإن السطور المكررة تمتلك ROWID مختلفة ولذلك عند الرغبة في حذف السطور المكررة والإبقاء على أحدها فإن الوسيلة الوحيدة لذلك هي باستخدام ROWID .هناك عدة وسائل للقيام بذلك تتلخص بالحصول على قيم ROWID للسطور المكررة وحذفها جميعا باستثناء أحدها.والله أعلم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
tekamoka بتاريخ: 4 أبريل 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 4 أبريل 2007 gazak allah kher a7' hassan' اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
J.DEV بتاريخ: 15 ديسمبر 2008 تقديم بلاغ مشاركة بتاريخ: 15 ديسمبر 2008 السلام علكيم لقد استخدمت خاصية البحث على المنتدى وكنت اريد ان اعالج مسألة تكرار البيانات وأفادني احدهم ان استخدم rowid فمثلا انا عندي حقل empno في جدول ال xx وبه بيانات متكررة وأريد ان احذف هذه البيانات المتكررة ليبقى بيان واحد من كل تكرار ارجو حل الجملة وجزاكم الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hassan978hmk بتاريخ: 15 ديسمبر 2008 تقديم بلاغ مشاركة بتاريخ: 15 ديسمبر 2008 (معدل) السلام عليكمفيما يلي وسيله سهلة لعمل ما تريده وتتلخص بالقيام بإنشاء جدول وسيط تنقل له السطور المكررة ( نسخة واحدة فقط) , ثم نقوم بحذف جميع السطور المكررة من الجدول الأساسيوندخلها من جديد من خلال الجدول الوسيط . create table tempxx as select distinct empno from xx; -- اكتب اسماء جميع الأعمدة --where ..... هنا يمكن إضافة شروط معينة لإلغاء تكرار بعض القيم وليس كل الجدول delete from xx; --where .....نفس الشروط في جملة انشاء الجدول الوسيط insert into xx select * from tempxx; drop table tempxx; طبعا هناك عدد آخر من الوسائل التي يمكن استخدامها للحصول على نفس النتيجةبالتوفيق تم تعديل 15 ديسمبر 2008 بواسطة hassan978hmk اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
J.DEV بتاريخ: 15 ديسمبر 2008 تقديم بلاغ مشاركة بتاريخ: 15 ديسمبر 2008 أرجو كتابة جميلة الشرط في جملة ال delete اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.