Migrações de um banco de dados para outro está cada vez mais comum, o problema é a migração de dados que estão relacionados via PK e Fk, uma ajuda muito boa seria a possibilidade de poder atualizar a PK em um tabela, e o banco de dados se encarregasse de atualizar no banco de dados todas as relações existentes entre a tabela pai e a filha. Abaixo vamos verificar como fazer isso em um  banco de dados oracle usando trigger e stored procedure.

1º Passo :

                Criar um banco de dados de exemplo para aplicar o conceito, para isso crie um usuário no oracle, depois execute os scripts  demobld.sql

 

2º Passo :

                Após criar o nosso banco de exemplo, vamos rodar no banco de dados criado o seguinte script : uc.sql em anexo no artigo.

3º Passo :

                No SQLPlus do oracle, conectado ao banco criado, execute o seguinte comando para cada tabela que será feito a atualização da PK :

                Exec update_cascade.on_table(‘Nome da Tabela’);

4º Passo :

                Execute o comando de atualização de banco de dados com no exemplo a seguir, aproveitando o banco criado no passo 1:

UPDATE  DEPT  SET DEPTNO = 1000 WHERE DEPTNO = 10;

 

O RESULTADO SERÁ QUE ONDE O SISTEMA ENCONTRAR O DEPTNO = 10 , A TRIGGER TROCARÁ NAS TABELAS FILHAS ONDE ENCONTRAR O VALO 10 POR 1000, SEM PRECISAR DESABILITAR AS CONSTRAINT DO BANCO DE DADOS             

http://www.makersoftware.com.br/all.tar