Pessoal,
Estou criando um processo de replicacao no oracle na versao 8174x utilizando view materializada e ocorre o seguinte:
Crio uma tabela de testes.
Crio uma visao materializada baseada nesta tabela.
Crio o log da visao materializada.
Efetuo algumas tranzacoes na tabela fonte com temporizador de refresh.
O problema ocorre da seguinte maneira:
Quando a view ? carregada pelo processo de refresh, o log assossiado a ela tambem deveria ser atualizado. isto nao esta ocorrendo nesta versao do oracle.
O script do teste ? o seguinte
===================
DROP TABLE TB CASCADE CONSTRAINTS;
DROP MATERIALIZED VIEW VW;
— CRIA OS OBJETOS
CREATE TABLE TB(CD NUMBER(3) PRIMARY KEY, DS VARCHAR2(10));
CREATE MATERIALIZED VIEW VW
BUILD IMMEDIATE
REFRESH COMPLETE
START WITH SYSDATE
NEXT sysdate + 2/1440
ENABLE QUERY REWRITE
AS
SELECT * FROM TB
/
CREATE MATERIALIZED VIEW LOG ON VW WITH PRIMARY KEY;
INSERT INTO TB VALUES (1, ‘teste’);
INSERT INTO TB VALUES (2, ‘teste’);
INSERT INTO TB VALUES (3, ‘teste’);
INSERT INTO TB VALUES (4, ‘teste’);
INSERT INTO TB VALUES (5, ‘teste’);
COMMIT;
— Apos dois minutos execute estas select ai entao vera que a vw foi atualizada mas o log de tranzacoes nao.
SELECT * FROM TB
UNION
SELECT * FROM VW
;
SELECT * FROM mlog$_VW;
===============================================
Realizai testes com o mesmo script no Oracle 9i e tudo deu certo.
Gostaria de saber se alguem ja passou por isso, e como foi resolvido na versao Oracle 8174x