الانتقال إلى المحتوى
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.

ساعدوني في فهم Rowid

Featured Replies

بتاريخ:

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

بتاريخ:

أي جدول يتم تخليقة من قبل المستخدم فإن أوراكل تخلق معه تلقائيا حقل اسمه rowid
وهو عبارة عن قيمة فريدةunique لكل سجل على حدة
بعد تخليق الجدول إذا عملت sql < desc my_table
سوف تجد فقط الحقول التي أضفتها بنفسك
بعد إضافتك أي سجلات لهذا الجدول يمكنك معرفة ال rowid
sql > select rowid from my_table
يمكنك استخدام هذا الحقل في مسح السجلات المكررة فمثلا إذا عنك سجلين بنفس القيم وتريد أن تمسح واحد منهم فإنك تستخدم ال rowid
sql < delete from my_table where rowid = 'myrowid'

بتاريخ:

هل يوجد جدول فى ال dictionary به معلومات عن ال rowid ؟
و بارك الله فيك يا أخ أبوعزت

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

اية يا جماعة مفيش حد يفدنا فى الموضوع ده
الأخ أبو صالح نداء انسانى :))

بتاريخ:

الأخ الكريم
ا-لقيمة 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 .
والله أعلم

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

بتاريخ:

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

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

gazak allah kher a7' hassan'

  • بعد 1 سنة...
بتاريخ:

السلام علكيم

لقد استخدمت خاصية البحث على المنتدى

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

وأفادني احدهم ان استخدم rowid

فمثلا انا عندي حقل empno

في جدول ال xx

وبه بيانات متكررة وأريد ان احذف هذه البيانات المتكررة ليبقى بيان واحد من كل تكرار

ارجو حل الجملة

وجزاكم الله خيرا

بتاريخ:

السلام عليكم
فيما يلي وسيله سهلة لعمل ما تريده وتتلخص بالقيام بإنشاء جدول وسيط تنقل له السطور المكررة ( نسخة واحدة فقط) , ثم نقوم بحذف جميع السطور المكررة من الجدول الأساسي
وندخلها من جديد من خلال الجدول الوسيط .


create table tempxx as select distinct empno from xx; -- اكتب اسماء جميع الأعمدة
--where ..... هنا يمكن إضافة شروط معينة لإلغاء تكرار بعض القيم وليس كل الجدول

delete from xx;
--where .....نفس الشروط في جملة انشاء الجدول الوسيط


insert into xx select * from tempxx; drop table tempxx;



طبعا هناك عدد آخر من الوسائل التي يمكن استخدامها للحصول على نفس النتيجة

بالتوفيق

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

بتاريخ:

أرجو كتابة جميلة الشرط في جملة ال delete

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

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

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

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

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

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.