Como Validar Alterações em Registros usando ORA_ROWSCN no Oracle Database
BlogDoBoss Como Validar Alterações em Registros usando ORA_ROWSCN no Oracle Database No último Oracle APEX Tour 2024 em Brasília, uma pergunta surgiu durante o painel de palestrantes: “É possível validar se o registro de uma “collection” sofreu alguma alteração na base de dados durante a sua manipulação ?”. A pergunta foi feita a meu colega André Souza, que fez uma apresentação sobre as vantagens e a melhoria de performance com o uso de coleções no APEX. Embora ele não tivesse enfrentado essa necessidade antes, mencionei durante o painel a utilização da pseudo-coluna ORA_ROWSCN como solução. Neste artigo apresento um guia prático para implementar essa ideia. 1. Criando a Tabela com ROWDEPENDENCIES Primeiro, é necessário criar a tabela com a opção ROWDEPENDENCIES, que permite rastrear o SCN (System Change Number) no nível da linha: CREATE TABLE Beg_Teste_Orarowscn ( “ID” NUMBER(*, 0) PRIMARY KEY, “DESCRICAO” VARCHAR2(150 BYTE) NOT NULL ENABLE ) ROWDEPENDENCIES; Por padrão, o Oracle rastreia o SCN no nível de bloco do banco de dados. Com ROWDEPENDENCIES, o SCN será armazenado por linha, permitindo maior granularidade. 2. Inserindo Dados na Tabela Adicione os registros para realizar os testes: INSERT INTO Beg_Teste_Orarowscn VALUES (1, ‘TESTE 1’); INSERT INTO Beg_Teste_Orarowscn VALUES (2, ‘TESTE 2’); INSERT INTO Beg_Teste_Orarowscn VALUES (3, ‘TESTE 3’); INSERT INTO Beg_Teste_Orarowscn VALUES (4, ‘TESTE 4’); INSERT INTO Beg_Teste_Orarowscn VALUES (5, ‘TESTE 5’); INSERT INTO Beg_Teste_Orarowscn VALUES (6, ‘TESTE 6’); INSERT INTO Beg_Teste_Orarowscn VALUES (7, ‘TESTE 7’); INSERT INTO Beg_Teste_Orarowscn VALUES (8, ‘TESTE 8’); INSERT INTO Beg_Teste_Orarowscn VALUES (9, ‘TESTE 9’); INSERT INTO Beg_Teste_Orarowscn VALUES (10, ‘TESTE 10’); COMMIT; 3. Verificando o SCN das Linhas Utilize a pseudo-coluna ORA_ROWSCN para visualizar o SCN associado a cada linha: SELECT A.Id, A.Descricao, A.Ora_Rowscn FROM Beg_Teste_Orarowscn A ORDER BY Id; 4. Alterando um Registro Realize uma atualização em um registro específico e confirme a transação: UPDATE Beg_Teste_Orarowscn SET Descricao = Descricao || ‘ REGISTRO ALTERADO’ WHERE Id = 4; COMMIT; 5. Confirmando a Mudança de SCN Após a atualização, execute novamente a consulta e observe o SCN modificado apenas no registro alterado: SELECT A.Id, A.Descricao, A.Ora_Rowscn FROM Beg_Teste_Orarowscn A ORDER BY Id; Dessa forma, ao carregar a coluna ORA_ROWSCN na collection em memória, será possível compará-la com o valor correspondente no banco de dados. Isso permitirá identificar se houve alguma modificação no registro durante o período de manipulação. Detalhes Técnicos ROWDEPENDENCIES: Armazena o SCN no nível da linha, garantindo rastreamento preciso. BLOCKDEPENDENCIES (padrão): O SCN é compartilhado por todas as linhas de um bloco de dados. Vantagens e Desvantagens do ROWDEPENDENCIES Vantagens Precisão no rastreamento de mudanças: Ideal para auditorias detalhadas e sincronização incremental. Acesso ao SCN individual: Útil em cenários de replicação e validação de dados. Desvantagens Armazenamento adicional: Cada linha requer 6 bytes extras para armazenar o SCN. Impacto na performance: Inserções e atualizações podem ser levemente afetadas. Opinião do BOSS A decisão de usar ou não ROWDEPENDENCIES depende das necessidades do seu negócio. Valide em sua aplicação para verificar o impacto real no desempenho e no armazenamento. Lembre-se: o Oracle Database tem a solução, basta escolher a ideal para o seu caso. Posts Recentes All Post Data Modeler Oracle Database Como Validar Alterações em Registros usando ORA_ROWSCN no Oracle Database novembro 29, 2024 Criando ambiente de Desenvolvimento / Testes em minutos novembro 14, 2024 Dúvidas Frequentes Quais são os benefícios de utilizar a Oracle Cloud para minha empresa? Oracle Cloud oferece uma infraestrutura robusta, segura e escalável, permitindo que sua empresa melhore a eficiência operacional, reduza custos com TI e tenha acesso a uma plataforma de desenvolvimento de alta performance. Além disso, a Oracle Cloud suporta a inovação contínua com ferramentas integradas de IA e machine learning. Como a Beg Support pode ajudar na migração para a Oracle Cloud? A Beg Support oferece um serviço completo de migração para a Oracle Cloud, que inclui avaliação inicial, planejamento detalhado, execução da migração e suporte pós-migração. Nosso time de especialistas garante que a transição seja suave e que sua operação continue sem interrupções. Quais são os serviços de suporte a bancos de dados oferecidos pela Beg? Oferecemos suporte completo para bancos de dados, incluindo monitoramento proativo, otimização de desempenho, gerenciamento de backups e recuperação, atualizações e patching, e suporte técnico 24/7. Nosso objetivo é garantir que seus bancos de dados funcionem de maneira eficiente e segura. Como posso monitorar o desempenho das minhas instâncias na Oracle Cloud? A Beg Support fornece ferramentas e dashboards personalizados para monitoramento contínuo das suas instâncias na Oracle Cloud. Isso inclui métricas de desempenho em tempo real, alertas de uso de recursos, análises de tendências e relatórios detalhados. Assim, você pode identificar e resolver problemas antes que eles afetem sua operação.
Como Validar Alterações em Registros usando ORA_ROWSCN no Oracle Database Read More »