بتاريخ: 14 سبتمبر 200916 سنة comment_169673 لقد قمت بعمل 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ارجوا منكم الإفادة والمساعدة .. ولكم خالص الشكر و التقدير تقديم بلاغ
بتاريخ: 2 أغسطس 20214 سنة comment_301759 اولا : لابد من عمل 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 تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.