Olá,
Minha sugestão
A redefinição baseada em edições permite ter várias versões de objetos PL/SQL, visualizações e sinônimos em um único esquema, o que torna possível realizar atualizações de aplicativos de banco de dados sem tempo de inatividade.
A redefinição baseada em edições permite redefinir os objetos copiados de forma isolada. As alterações não afetam os usuários do aplicativo. Um banco de dados deve ter pelo menos uma edição.
Regras
Um Oracle Database criado ou atualizado começa com uma edição chamada ora$base. O pai da primeira edição criada com uma declaração CREATE EDITION é ora$base. A declaração CREATE EDITION e2 cria a edição e2 como filha de ora$base.
Um objeto com edição é um objeto de esquema que possui um tipo editável e um proprietário habilitado para edições. Uma edição pode ter sua própria cópia de um objeto com edição, caso em que apenas a cópia é visível para a edição. Todos os objetos são editáveis.
- SINÔNIMO - Exceção SINÔNIMO é um tipo editável, um sinônimo público é um objeto não editável.
- VISÃO
Todos os tipos de objetos PL/SQL:
- FUNÇÃO
- BIBLIOTECA
- PACOTE e CORPO DO PACOTE
- PROCEDIMENTO
- ACIONADOR
- TIPO e CORPO DO TIPO
Um objeto não editável é um objeto de esquema que possui um tipo não editável. Uma edição não pode ter sua própria cópia de um objeto não editável. Um objeto não editável é idêntico em todas as edições e visível para todas as edições.
Exemplo: Tabela
Seria natural adicionar um novo campo no nível do modelo. Eu chamaria essa nova propriedade de "Edição". Esta propriedade conteria uma Lista de Valores (nomes de edições). Deveria ser possível selecionar uma das edições já existentes ou criar uma nova.
Dependendo da edição escolhida por padrão no nível do modelo, teríamos acesso aos objetos desta edição e a todos os objetos ora$base - não editados - e a todos os objetos que possuem um tipo não editável - como Tabela.
Ao criar um novo objeto de edição, deveria ser possível realizar uma importação ou copiar/colar de um objeto de uma edição anterior. O objeto importado deve servir como modelo, inspiração e origem.
Por fim, deveria ser possível tomar conhecimento dos objetos editáveis anteriores selecionando uma propriedade LOV no nível do objeto.