2012-01-25 19 views
5

İki Oracle veritabanında DB_A ve DB_B olduğunu varsayalım. Orada bir hayata görünüm günlüğüne ile DB_A içinde TAB1 adında bir tablodur ve DB_B içinde SNAP_TAB1 adlı bir materialized görünümOracle'da materyalize bir görünüm hızlı yenileme tarafından yapılan değişiklikleri sorgulamanın bir yolu var mı?

CREATE SNAPSHOT SNAP_TAB1 
REFRESH FAST 
AS SELECT * FROM [email protected]_A; 

ileri-geri almak için her çağrıdan sonra DB_B içinde SNAP_TAB1 yapılan değişiklikleri sorgulamak için bir yol var mı ile oluşturulan materyalize görünümü yenilemek?

DBMS_SNAPSHOT.REFRESH('SNAP_TAB1', 'F'); 

DB_A, önceki yenileme için, Satırların TAB1 değiştirilmiş olduğunu görmek için, hayata bakış günlüğü tablosunu, Mlog $ _TAB1 sorgulayabilir. Her yenileme işleminden sonra, SNAP_TAB1'de hangi satırların yenilendiğini DB_B'de sorgulamanın bir yolunu arıyorum.

Teşekkürler!

Tablodaki SNAP_TAB1 bir sütun ekleyebilirsiniz:

cevap

1

Ben önceden oluşturulmuş tabloyla işin altına hatları düşünüyorum.

Ekler için default sysdate numaralı etikete ekleyebilirsiniz. Her ekleme için, ekin zaman damgasına sahip olursunuz.

Güncellemeler için bir tetikleyici kullanabilirsiniz. Sütun Materyalize Edilmiş Görünümde yer almadığından, sütunu tetikleyici ile güncellemek sorun olmaz. Her yeni yenileme önce artırılır o sütundaki, saklamak için. benzersiz bir kimliği kullanabilir tetikleyici ile

probaly daha iyi, (farklı yaklaşımda olabilir benzersiz kimliği temin etmek.) Açıkçası

, sen' t Bu fikri siler.

İlgili konular