Flashback Versions Query in Oracle Database
نشر بواسطة : 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.
Comments
لايوجد تعليق حتى الان