نشر بواسطة : Obay Salah , November 19, 2024

 في بعض الأحيان قد تحتاج كمشرف قاعدة بيانات إلى مراقبة بعض التعديلات على الحقول، فأنت بحاجة إلى معرفة القيم التي أخذها حقل معين لفترات تاريخية محددة، على سبيل المثال قد تتغير رواتب الموظفين كل فترة، لذا فإن حقل ﺍلSalary  يتم تعديله كل فترة زمنية، ولكن لنفترض أنني بحاجة إلى معرفة ﺍلHistory  أو القيم السابقة لراتب موظف معين منذ تعيينه، فكل ما يتوفر لي في

الجدول الآن هو قيمة الراتب الأخيرة.

تم تقديم هذا النوع في Oracle 10g ويعتمد بشكل أساسي على ﺍلUndo Tablespace، بحيث يجلب المعلومات التي يريدها من  ﺍلUndo Segments بعد تحديد الفترة الزمنية المحددة

أو عن طريق (System Change Number (SCN.

SELECT SALARY,VERSIONS_XID AS XID,VERSIONS_STARTSCN,VERSIONS_ENDSCN,VERSIONS_O PERATION FROM SALARY VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE WHERE EMP_NO=1;

في المثال السابق، قمنا بعرض المعلومات باستخدام SCN، ولكن يمكننا أيضًا استخدام Timestamp.


ملاحظة: لا يتم عرض القيم التي لم يتم تثبيتها Commited ، لذا ستفشل عملية Flashback Versions إذا لم يتم العثور على المعلومات المطلوبة في Undo Tablespace. لا يمكن إجراء Flashback Versions للجداول الخارجية  External Tables  أو الجداول المؤقتةemporary Tables  أو Views.


علامات : Database

يمكن ان يعجبك ايضا


Comments

لايوجد تعليق حتى الان