Converter esquemas Oracle (OracleToSQL)Converting Oracle Schemas (OracleToSQL)

Depois de se conectar ao Oracle, conectado ao SQL ServerSQL Server, e defina o projeto e as opções de mapeamento de dados, você pode converter objetos de banco de dados Oracle para SQL ServerSQL Server objetos de banco de dados.After you have connected to Oracle, connected to SQL ServerSQL Server, and set project and data mapping options, you can convert Oracle database objects to SQL ServerSQL Server database objects.

O processo de conversãoThe Conversion Process

Converter objetos de banco de dados usa as definições de objeto do Oracle, converte-os em semelhante SQL ServerSQL Server objetos e, em seguida, carrega essas informações nos metadados SSMA.Converting database objects takes the object definitions from Oracle, converts them to similar SQL ServerSQL Server objects, and then loads this information into the SSMA metadata. Não carrega as informações para a instância da SQL ServerSQL Server.It does not load the information into the instance of SQL ServerSQL Server. Em seguida, você pode exibir os objetos e suas propriedades usando o SQL ServerSQL Server Gerenciador de metadados.You can then view the objects and their properties by using the SQL ServerSQL Server Metadata Explorer.

Durante a conversão, o SSMA imprime mensagens de saída para o painel de saída e mensagens de erro para o painel de lista de erros.During the conversion, SSMA prints output messages to the Output pane and error messages to the Error List pane. Use as informações de erro e de saída para determinar se é preciso modificar seus bancos de dados Oracle ou o processo de conversão para obter os resultados da conversão desejada.Use the output and error information to determine whether you have to modify your Oracle databases or your conversion process to obtain the desired conversion results.

Definindo opções de conversãoSetting Conversion Options

Antes de converter objetos, examine as opções de conversão de projeto na configurações do projeto caixa de diálogo.Before converting objects, review the project conversion options in the Project Settings dialog box. Usando essa caixa de diálogo, você pode definir como o SSMA converte funções e variáveis globais.By using this dialog box, you can set how SSMA converts functions and global variables. Para obter mais informações, consulte configurações do projeto (conversão) (OracleToSQL).For more information, see Project Settings (Conversion) (OracleToSQL).

Resultados de conversãoConversion Results

A tabela a seguir mostra quais objetos do Oracle são convertidos e resultante SQL ServerSQL Server objetos:The following table shows which Oracle objects are converted, and the resulting SQL ServerSQL Server objects:

Objetos do OracleOracle Objects Objetos do SQL Server resultantesResulting SQL Server Objects
FunçõesFunctions Se a função pode ser convertida diretamente em Transact-SQLTransact-SQL, SSMA cria uma função.If the function can be directly converted to Transact-SQLTransact-SQL, SSMA creates a function.

Em alguns casos, a função deve ser convertida em um procedimento armazenado.In some cases, the function must be converted to a stored procedure. Nesse caso, o SSMA cria um procedimento armazenado e uma função que chama o procedimento armazenado.In this case, SSMA creates a stored procedure and a function that calls the stored procedure.
ProcedimentosProcedures Se o procedimento pode ser convertido diretamente em Transact-SQLTransact-SQL, SSMA cria um procedimento armazenado.If the procedure can be directly converted to Transact-SQLTransact-SQL, SSMA creates a stored procedure.

Em alguns casos, um procedimento armazenado deve ser chamado em uma transação autônoma.In some cases a stored procedure must be called in an autonomous transaction. Nesse caso, o SSMA cria dois procedimentos armazenados: uma que implementa o procedimento e outro que é usada para chamar a implementação de procedimento armazenado.In this case, SSMA creates two stored procedures: one that implements the procedure, and another that is used for calling the implementing stored procedure.
PackagesPackages O SSMA cria um conjunto de procedimentos armazenados e funções que são unificadas por nomes de objeto semelhantes.SSMA creates a set of stored procedures and functions that are unified by similar object names.
SequênciasSequences O SSMA cria objetos de sequência (SQL Server 2012 ou SQL Server 2014) ou emula sequências da Oracle.SSMA creates sequence objects (SQL Server 2012 or SQL Server 2014) or emulates Oracle sequences.
Tabelas com objetos dependentes, como índices e disparadoresTables with dependent objects such as indexes and triggers O SSMA cria tabelas com objetos dependentes.SSMA creates tables with dependent objects.
Exibir com objetos dependentes, como gatilhosView with dependent objects, such as triggers O SSMA cria exibições com objetos dependentes.SSMA creates views with dependent objects.
Exibições materializadasMaterialized Views O SSMA cria exibições indexadas no SQL server com algumas exceções. Conversão falhará se a exibição materializada inclui um ou mais das construções a seguir:SSMA creates indexed views on SQL server with some exceptions. Conversion will fail if the materialized view includes one or more of the following constructs:

Função definida pelo usuárioUser-defined function

Campo não determinístico de função / expressão no, selecione onde ou cláusulas GROUP BYNon deterministic field / function / expression in SELECT, WHERE or GROUP BY clauses

Uso de coluna Float em SELECT *, onde ou cláusulas GROUP BY (caso especial de edição anterior)Usage of Float column in SELECT*, WHERE or GROUP BY clauses (special case of previous issue)

Tipo de dados personalizados (tabelas aninhadas de incl.)Custom data type (incl. nested tables)

COUNT (distinct <campo>)COUNT(distinct <field>)

FETCHFETCH

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

Subconsulta, outro modo de exibiçãoSubquery, other view

ACIMA, CLASSIFICAR, CLIENTE POTENCIAL, FAÇA LOGONOVER, RANK, LEAD, LOG

MIN, MAXMIN, MAX

UNION, SUBTRAÇÃO, SE CRUZAMUNION, MINUS, INTERSECT

HAVINGHAVING
DisparadorTrigger O SSMA cria gatilhos com base nas seguintes regras:SSMA creates triggers based on the following rules:

ANTES dos gatilhos são convertidos em gatilhos INSTEAD OF.BEFORE triggers are converted to INSTEAD OF triggers.

Gatilhos AFTER são convertidos em gatilhos AFTER.AFTER triggers are converted to AFTER triggers.

Os gatilhos INSTEAD OF são convertidos em gatilhos INSTEAD OF.INSTEAD OF triggers are converted to INSTEAD OF triggers. Vários gatilhos INSTEAD OF definidos na mesma operação são combinados em um gatilho.Multiple INSTEAD OF triggers defined on the same operation are combined into one trigger.

Gatilhos de nível de linha são emulados usando cursores.Row-level triggers are emulated using cursors.

Gatilhos em cascata são convertidos em vários disparadores individuais.Cascading triggers are converted into multiple individual triggers.
SinônimosSynonyms Sinônimos são criados para os seguintes tipos de objeto:Synonyms are created for the following object types:

Tabelas e tabelas de objetoTables and object tables

Modos de exibição e objetoViews and object views

Procedimentos armazenadosStored procedures

FunçõesFunctions

Sinônimos para os seguintes objetos são resolvidos e substituídos por referências de objeto:Synonyms for the following objects are resolved and replaced by direct object references:

SequênciasSequences

PackagesPackages

Objetos de esquema de classe de JavaJava class schema objects

Tipos de objeto definido pelo usuárioUser-defined object types

Sinônimos de outro sinônimo não podem ser migrados e serão marcados como erros.Synonyms for another synonym cannot be migrated and will be marked as errors.

Sinônimos não são criados para Materialized modos de exibição.Synonyms are not created for Materialized views.
Tipos definidos pelo usuárioUser Defined Types O SSMA fornece suporte para a conversão de tipos definidos pelo usuário. Tipos definidos pelo usuário, incluindo seu uso em programas de PL/SQL são marcados com erros de conversão especial guiados pelas seguintes regras:SSMA does not provide support for conversion of user defined types. User Defined Types, including its usage in PL/SQL programs are marked with special conversion errors guided by the following rules:

Coluna da tabela de um tipo definido pelo usuário é convertida em VARCHAR(8000).Table column of a user defined type is converted to VARCHAR(8000).

Tipo definido pelo argumento do usuário para um procedimento armazenado ou função é convertida em VARCHAR(8000).Argument of user defined type to a stored procedure or function is converted to VARCHAR(8000).

Variável do tipo definido pelo usuário no bloco de PL/SQL é convertido em VARCHAR(8000).Variable of user defined type in PL/SQL block is converted to VARCHAR(8000).

Tabela de objeto é convertida em uma tabela padrão.Object Table is converted to a Standard table.

Exibição do objeto é convertida em uma exibição padrão.Object view is converted to a Standard view.

Converter objetos de banco de dados OracleConverting Oracle Database Objects

Para converter objetos de banco de dados Oracle, primeiro selecione os objetos que você deseja converter e, em seguida, ter o SSMA realizar a conversão.To convert Oracle database objects, you first select the objects that you want to convert, and then have SSMA perform the conversion. Para exibir mensagens de saída durante a conversão na modo de exibição menu, selecione saída.To view output messages during the conversion, on the View menu, select Output.

Para converter objetos Oracle em sintaxe do SQL ServerTo convert Oracle objects to SQL Server syntax

  1. No Gerenciador de metadados do Oracle, expanda o servidor Oracle e, em seguida, expanda esquemas.In Oracle Metadata Explorer, expand the Oracle server, and then expand Schemas.

  2. Selecione objetos a ser convertida:Select objects to convert:

    • Para converter todos os esquemas, selecione a caixa de seleção ao lado esquemas.To convert all schemas, select the check box next to Schemas.

    • Para converter ou omitir um banco de dados, marque a caixa de seleção ao lado do nome do esquema.To convert or omit a database, select the check box next to the schema name.

    • Para converter ou omitir uma categoria de objetos, expanda um esquema e, em seguida, selecione ou desmarque a caixa de seleção ao lado da categoria.To convert or omit a category of objects, expand a schema, and then select or clear the check box next to the category.

    • Para converter ou omitir os objetos individuais, expanda a pasta de categoria e, em seguida, selecione ou desmarque a caixa de seleção ao lado do objeto.To convert or omit individual objects, expand the category folder, and then select or clear the check box next to the object.

  3. Para converter todos os objetos selecionados, clique com botão direito esquemas e selecione converter esquema.To convert all selected objects, right-click Schemas and select Convert Schema.

    Você também pode converter objetos individuais ou as categorias de objetos, clicando duas vezes o objeto ou a pasta pai e, em seguida, selecionando converter esquema.You can also convert individual objects or categories of objects by right-clicking the object or its parent folder, and then selecting Convert Schema.

Problemas de conversão de exibiçãoViewing Conversion Problems

Alguns objetos do Oracle não podem ser convertidos.Some Oracle objects might not be converted. Você pode determinar as taxas de sucesso de conversão, exibindo o relatório de resumo de conversão.You can determine the conversion success rates by viewing the summary conversion report.

Para exibir um relatório de resumoTo view a summary report

  1. No Gerenciador de metadados do Oracle, selecione esquemas.In Oracle Metadata Explorer, select Schemas.

  2. No painel direito, selecione a relatório guia.In the right pane, select the Report tab.

    Este relatório mostra o relatório de resumo de avaliação para todos os objetos de banco de dados que foram avaliados ou convertidos.This report shows the summary assessment report for all database objects that have been assessed or converted. Você também pode exibir um relatório de resumo para objetos individuais:You can also view a summary report for individual objects:

    • Para exibir o relatório para um esquema individual, selecione o esquema no Gerenciador de metadados do Oracle.To view the report for an individual schema, select the schema in Oracle Metadata Explorer.

    • Para exibir o relatório para um objeto individual, selecione o objeto no Gerenciador de metadados do Oracle.To view the report for an individual object, select the object in Oracle Metadata Explorer. Objetos que têm problemas de conversão têm um ícone vermelho de erro.Objects that have conversion problems have a red error icon.

Para objetos que falha na conversão, você pode exibir a sintaxe que resultou em falha de conversão.For objects that failed conversion, you can view the syntax that resulted in the conversion failure.

Para exibir os problemas de conversão individuaisTo view individual conversion problems

  1. No Gerenciador de metadados do Oracle, expanda esquemas.In Oracle Metadata Explorer, expand Schemas.

  2. Expanda o esquema que mostra um ícone vermelho de erro.Expand the schema that shows a red error icon.

  3. Sob o esquema, expanda uma pasta que tem um ícone vermelho de erro.Under the schema, expand a folder that has a red error icon.

  4. Selecione o objeto que tem um ícone vermelho de erro.Select the object that has a red error icon.

  5. No painel direito, clique no relatório guia.In the right pane, click the Report tab.

  6. Na parte superior do relatório guia é uma lista suspensa.At the top of the Report tab is a drop-down list. Se a lista mostra estatísticas, altere a seleção origem.If the list shows Statistics, change the selection to Source.

    O SSMA exibirá o código-fonte e vários botões imediatamente acima do código.SSMA will display the source code and several buttons immediately above the code.

  7. Clique o próximo problema botão.Click the Next Problem button. Isso é um ícone vermelho de erro com uma seta que aponta para a direita.This is a red error icon with an arrow that points to the right.

    O SSMA realçará o código-fonte problemático primeiro que ele localiza no objeto atual.SSMA will highlight the first problematic source code it finds in the current object.

Para cada item que não pôde ser convertido, você deve determinar o que você deseja fazer com esse objeto:For each item that could not be converted, you have to determine what you want to do with that object:

  • Você pode modificar o código-fonte para obter procedimentos sobre o SQL guia.You can modify the source code for procedures on the SQL tab.

  • Você pode modificar o objeto no banco de dados Oracle para remover ou revisar código problemático.You can modify the object in the Oracle database to remove or revise problematic code. Para carregar o código atualizado no SSMA, você terá que atualizar os metadados.To load the updated code into SSMA, you will have to update the metadata. Para obter mais informações, consulte conectar-se ao banco de dados Oracle (OracleToSQL).For more information, see Connecting to Oracle Database (OracleToSQL).

  • Você pode excluir o objeto da migração.You can exclude the object from migration. Na SQL ServerSQL Server Gerenciador de metadados e o Gerenciador de metadados do Oracle, desmarque a caixa de seleção próxima ao item antes de carregar os objetos em SQL ServerSQL Server e migração de dados do Oracle.In SQL ServerSQL Server Metadata Explorer and Oracle Metadata Explorer, clear the check box next to the item before loading the objects into SQL ServerSQL Server and migrating data from Oracle.

Próxima etapaNext Step

É a próxima etapa no processo de migração carregar objetos convertidos no SQL Server.The next step in the migration process is to Load the converted objects into SQL Server.

Consulte tambémSee Also

Migrando do Oracle bancos de dados para o SQL Server (OracleToSQL)Migrating Oracle Databases to SQL Server (OracleToSQL)