Converter esquemas Oracle (OracleToSQL)

Depois de se conectar ao Oracle, conectar-se ao SQL Server e definir opções de mapeamento de dados e de projeto, você poderá converter objetos de banco de dados Oracle em objetos de banco de dados do SQL Server.

O processo de conversão

A conversão de objetos de banco de dados usa as definições de objeto do Oracle, converte-as em objetos SQL Server semelhantes e, em seguida, carrega essas informações para os metadados do SSMA. Ela não carrega as informações na instância do SQL Server. Em seguida, você pode exibir os objetos e as propriedades deles usando o Gerenciador de Metadados do SQL Server.

Durante a conversão, o SSMA imprime as mensagens de saída no painel Saída e as mensagens de erro no painel Lista de Erros. Use as informações de saída e erro para determinar se você precisa modificar seus bancos de dados do Oracle ou seu processo de conversão para obter os resultados de conversão desejados.

Definir as opções de conversão

Antes de converter objetos, revise as opções de conversão do projeto na caixa de diálogo Configurações do Projeto. Usando essa caixa de diálogo, você pode definir como o SSMA converte funções e variáveis globais. Para obter mais informações, veja Configurações do projeto (conversão) (OracleToSQL).

Resultados da conversão

A tabela a seguir mostra quais objetos Oracle são convertidos e os objetos SQL Server resultantes:

Objetos Oracle Objetos SQL Server resultantes
Funções Se a função puder ser convertida diretamente em Transact-SQL, o SSMA criará uma função.

Em alguns casos, a função deve ser convertida em um procedimento armazenado. Nesse caso, o SSMA cria um procedimento armazenado e uma função que o chama.
Procedimentos Se o procedimento puder ser convertido diretamente em Transact-SQL, o SSMA criará um procedimento armazenado.

Em alguns casos, um procedimento armazenado deve ser chamado em uma transação autônoma. Nesse caso, o SSMA cria dois procedimentos armazenados: um que implementa o procedimento e outro usado para chamar o procedimento armazenado de implementação.
Pacotes O SSMA cria um conjunto de procedimentos armazenados e funções que são unificados por nomes de objeto semelhantes.
Sequências O SSMA cria objetos de sequência (SQL Server 2012 ou SQL Server 2014) ou emula sequências do Oracle.
Tabelas com objetos dependentes, como índices e gatilhos O SSMA cria tabelas com objetos dependentes.
Exibição com objetos dependentes, como gatilhos O SSMA cria exibições com objetos dependentes.
Exibições materializadas O SSMA cria exibições indexadas no SQL Server com algumas exceções. A conversão falhará se a exibição materializada incluir uma ou mais das seguintes construções:

Função definida pelo usuário

Campo/função/expressão não determinística em cláusulas SELECT, WHERE ou GROUP BY

Uso da coluna Float nas cláusulas SELECT*, WHERE ou GROUP BY (caso especial do problema anterior)

Tipo de dados personalizado (incluindo tabelas aninhadas)

COUNT (<campo> distinto)

FETCH

junções OUTER (LEFT, RIGHT ou FULL)

Subconsulta, outra exibição

OVER, RANK, LEAD, LOG

MIN, MAX

UNION, MINUS, INTERSECT

HAVING
Gatilho O SSMA cria gatilhos com base nas seguintes regras:

Os gatilhos BEFORE são convertidos em gatilhos INSTEAD OF.

Os gatilhos AFTER são convertidos em gatilhos AFTER.

Os gatilhos INSTEAD OF são convertidos em gatilhos INSTEAD OF. Vários gatilhos INSTEAD OF definidos na mesma operação são combinados em um único gatilho.

Os gatilhos de nível de linha são emulados com cursores.

Os gatilhos compostos são convertidos em gatilhos INSTEAD OF. Vários gatilhos compostos são combinados em um único gatilho

Os gatilhos em cascata são convertidos em vários gatilhos individuais.
Sinônimos Sinônimos são criados para os seguintes tipos de objeto:

Tabelas e tabelas de objeto

Exibições e exibições objeto

Procedimentos armazenados

Funções

Os sinônimos dos seguintes objetos são resolvidos e substituídos por referências diretas de objeto:

Sequências

Pacotes

Objetos de esquema de classe Java

Tipos de objeto definidos pelo usuário

Os sinônimos de outro sinônimo não podem ser migrados e serão marcados como erros.

Sinônimos não são criados para exibições materializadas.
Tipos definidos pelo usuário O SSMA não oferece suporte para a conversão de tipos definidos pelo usuário. Os tipos definidos pelo usuário, incluindo seu uso em programas PL/SQL, são marcados com erros de conversão especiais orientados pelas seguintes regras:

A coluna de tabela de um tipo definido pelo usuário é convertida em VARCHAR (8000).

O argumento do tipo definido pelo usuário de um procedimento armazenado ou função é convertido em VARCHAR (8000).

A variável do tipo definido pelo usuário no bloco PL/SQL é convertida em VARCHAR (8000).

A tabela de objetos é convertida em uma tabela Standard.

A exibição objetos é convertida em uma exibição Standard.

Converter os objetos de banco de dados Oracle

Para converter objetos de banco de dados Oracle, primeiro selecione os objetos que deseja converter e, em seguida, faça com que o SSMA execute a conversão. Para exibir as mensagens de saída durante a conversão, no menu Exibir, selecione Saída.

Para converter objetos Oracle em sintaxe do SQL Server

  1. No Explorador de Metadados Oracle, expanda o servidor Oracle e, em seguida, expanda Esquemas.

  2. Selecione os objetos a serem convertidos:

    • Para converter todos os esquemas, marque a caixa de seleção ao lado de Esquemas.

    • Para converter ou omitir um banco de dados, marque a caixa de seleção ao lado do nome do esquema.

    • Para converter ou omitir uma categoria de objetos, expanda um esquema e marque ou desmarque a caixa de seleção ao lado da categoria.

    • Para converter ou omitir objetos individuais, expanda a pasta de categoria e marque ou desmarque a caixa de seleção ao lado do objeto.

  3. Para converter todos os objetos selecionados, clique com o botão direito do mouse em Esquemas e selecione Converter Esquema.

    Você também pode converter objetos individuais ou categorias de objetos clicando com o botão direito do mouse no objeto ou em sua pasta pai e selecionando Converter Esquema.

Exibindo problemas de conversão

Alguns objetos Oracle podem não ser convertidos. Você pode determinar as taxas de sucesso de conversão exibindo o relatório de conversão resumido.

Para exibir um relatório de resumo

  1. No Explorador de Metadados do Oracle, selecione Esquemas.

  2. No painel à direita, selecione a guia Relatório.

    Este relatório mostra o resumo de avaliação para todos os objetos de banco de dados que foram avaliados ou convertidos. Você também pode exibir um relatório de resumo para objetos individuais:

    • Para exibir o relatório de um esquema individual, selecione o esquema no Explorador de Metadados do Oracle.

    • Para exibir o relatório de um objeto individual, selecione o objeto no Explorador de Metadados do Oracle. Os objetos com problemas de conversão têm um ícone de erro vermelho.

Para objetos que falharam na conversão, você pode exibir a sintaxe que resultou na falha de conversão.

Para exibir problemas de conversão individuais

  1. No Explorador de Metadados do Oracle, expanda Esquemas.

  2. Expanda o esquema que mostra um ícone de erro vermelho.

  3. Sob o esquema, expanda uma pasta que tenha um ícone de erro vermelho.

  4. Selecione o objeto que tem um ícone de erro vermelho.

  5. No painel direito, clique na guia Relatório.

  6. Na parte superior da guia Relatório há uma lista suspensa. Se a lista mostrar Estatísticas, altere a seleção para Origem.

    O SSMA exibirá o código-fonte e vários botões imediatamente acima do código.

  7. Clique no botão Próximo Problema. Este é um ícone de erro vermelho com uma seta que aponta para a direita.

    O SSMA destacará o primeiro código-fonte problemático encontrado no objeto atual.

Para cada item que não pôde ser convertido, você precisa determinar o que deseja fazer com esse objeto:

  • Você pode modificar o código-fonte para procedimentos na guia SQL.

  • Você pode modificar o objeto no banco de dados Oracle para remover ou revisar o código problemático. Para carregar o código atualizado no SSMA, você terá que atualizar os metadados. Para obter mais informações, veja Conectar-se ao banco de dados Oracle (OracleToSQL).

  • Você pode excluir o objeto da migração. No Explorador de Metadados do SQL Server e no Explorador de Metadados do Oracle, desmarque a caixa de seleção ao lado do item antes de carregar os objetos no SQL Server e migrar os dados do Oracle.

Próxima etapa

A próxima etapa no processo de migração é Carregar os objetos convertidos no SQL Server.

Confira também

Migração de bancos de dados Oracle para o SQL Server (OracleToSQL)