PLANET 0 تقديم بلاغ بتاريخ: September 14, 2009 لقد قمت بعمل DATALINK بين قاعدتي بيانات ..ومن ثم قمت بعمل MATERIALIZED VIEW بالعبارة التالية :-CREATE MATERIALIZED VIEW V2 BUILD IMMEDIATE REFRESH COMPLETE AS SELECT * FROM TAB@LINK_NAME ولقد تم هذا العمل بنجاح .. ولكن عند إضافة بيانات جديدة في الجدول الاصلي , لايتم استرجاعها في الـ MATERIALIZED VIEWوعند تعديل العبارة السابقة بالعبار التالية :-CREATE MATERIALIZED VIEW V2 BUILD IMMEDIATE REFRESH FAST ON COMMIT COMPLETE AS SELECT * FROM TAB@LINK_NAME يظهر الخطأ التالي ORA-23413ارجوا منكم الإفادة والمساعدة .. ولكم خالص الشكر و التقدير شارك هذه المشاركة رابط المشاركة شارك
Mahmoud mohamed gaber 0 تقديم بلاغ بتاريخ: August 2, 2021 اولا : لابد من عمل log لل MATERIALIZED VIEW قبل انشائها لحل مشكلة الرسالة مثال: CREATE MATERIALIZED VIEW LOG ON TAB; ثانيا : اذا اردت ان تجلب البيانات المعدلة فقط او المضافة حديثا فقط عند الطلب (DEMAND) او عند الحاجه لتحديثها بشكل يدوي استخدم الكود التالي: CREATE MATERIALIZED VIEW V2 REFRESH FAST ON DEMAND AS SELECT * FROM TAB T ولتشغيلها : EXECUTE DBMS_MVIEW.REFRESH('V2'); ثالثا اذا اردت ان تجلب البيانات المعدلة فقط او المضافة حديثا فقط بشكل الي كل فترة زمنية معينة استخدم الكود التالي: (في هذا المثال يتم تحديث البيانات في MATERIALIZED VIEW كل عشر ثواني بشكل اوتوماتيكي) -- HERE WE CREATE A JOB THIS JOB OUTO START AFTER 10 SECOND , SO THE NEXT REFRESH WILL BE AFTER 10 s' CREATE MATERIALIZED VIEW MV_TMP REFRESH FAST START WITH (SYSDATE) NEXT (SYSDATE+10/86400) AS SELECT * FROM TAB T; رابعا : للاستعلام عن جدول ال log الخاص ب MATERIALIZED VIEW لمعرفة تفاصيل العمليات عليها --WE CAN CHICK THE LOG FRON THIS SELECT STATMENT SELECT * FROM USER_MVIEW_LOGS; -- RETURN MV LOG TABLES -- THEN SELECT * FROM MLOG$TAB; -- FAST TYPE IS DEPEND ON THIS TABEL FOR DATA REFRESHING شارك هذه المشاركة رابط المشاركة شارك