Converter esquemas do Db2 (Db2ToSQL)
Depois de se conectar ao Db2 e ao SQL Server e configurar as opções de projeto e mapeamento de dados, é possível converter objetos de banco de dados do Db2 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 Db2, converte-as em objetos semelhantes do SQL Server e, em seguida, carrega essas informações nos metadados do SQL Server Migration Assistant (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 é necessário modificar seus bancos de dados Db2 ou seu processo de conversão para obter os resultados de conversão desejados.
Definir 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. Use essa caixa de diálogo para definir como o SSMA converte funções e variáveis globais. Para obter mais informações, confira Configurações do projeto (Conversão).
Resultados da conversão
A tabela a seguir mostra quais objetos Db2 são convertidos e os objetos SQL Server resultantes:
Objetos do DB2 | Objetos do SQL Server resultantes |
---|---|
Tipos de dados | O SSMA mapeia todos os tipos, exceto os seguintes tipos:CLOB : não há suporte para algumas funções nativas que funcionam com esse tipo (por exemplo, CLOB_EMPTY() )BLOB : não há suporte para algumas funções nativas para trabalhar com esse tipo (por exemplo, BLOB_EMPTY() )DBLOB : não há suporte para algumas funções nativas para trabalhar com esse tipo (por exemplo, DBLOB_EMPTY() ) |
Tipos definidos pelo usuário | O SSMA mapeia os seguintes objetos definidos pelo usuário: - Tipo distinto - Tipo estruturado - Tipos de dados SQL PL Observação: não há suporte para tipos de cursor fracos. |
Registros especiais | O SSMA mapeia apenas os seguintes registros:CURRENT TIMESTAMP CURRENT DATE CURRENT TIME CURRENT TIMEZONE CURRENT USER SESSION_USER e USER SYSTEM_USER CURRENT CLIENT_APPLNAME CURRENT CLIENT_WRKSTNNAME CURRENT LOCK TIMEOUT CURRENT SCHEMA CURRENT SERVER CURRENT ISOLATION Outros registros especiais não são mapeados para a semântica do SQL Server. |
CREATE TABLE |
Mapas CREATE TABLE do SSMA com as seguintes exceções:Tabelas de agrupamento multidimensional (MDC) Tabelas agrupadas de intervalo (RCT) Tabelas particionadas Mesa separada Cláusula DATA CAPTURE IMPLICITLY HIDDEN optionVOLATILE option |
CREATE VIEW |
O SSMA é mapeado CREATE VIEW com WITH LOCAL CHECK OPTION , mas outras opções, não são mapeadas para a semântica do SQL Server |
CREATE INDEX |
Mapas CREATE INDEX do SSMA com as seguintes exceções:Índice XML BUSINESS_TIME WITHOUT OVERLAPS optionCláusula PARTITIONED SPECIFICATION ONLY optionEXTEND USING optionMINPCTUSED optionPAGE SPLIT option |
Gatilhos | O SSMA mapeia a seguinte semântica de gatilho:AFTER / FOR EACH ROW GatilhosAFTER / FOR EACH STATEMENT GatilhosBEFORE / FOR EACH ROW e INSTEAD OF / FOR EACH ROW gatilhos |
Sequências | Mapeado. |
Instrução SELECT |
Mapas SELECT do SSMA com as seguintes exceções:cláusula data-change-table-reference - Parcialmente mapeada, mas FINAL não há suporte para tabelastable-reference clause – Parcialmente mapeadas, mas only-table-reference, outer-table-reference, analyze-table-expression, collection-derived-table, xmltable-expression não são mapeadas para a semântica do SQL Server period-specification cláusula - Não mapeada.Cláusula continue-handler - Não mapeada. Cláusula typed-correlation - Não mapeada. Cláusula concurrent-access-resolution - Não mapeada. |
Instrução VALUES |
Mapeado. |
Instrução INSERT |
Mapeado. |
Instrução UPDATE |
Mapas UPDATE do SSMA com as seguintes exceções:Cláusula de referência de tabela – only-table-reference não é mapeada para a semântica do SQL Server Cláusula de período - Não está mapeada. |
Instrução MERGE |
Mapas MERGE do SSMA com as seguintes exceções:Ocorrências únicas versus múltiplas de cada cláusula - Mapeada para a semântica do SQL Server para ocorrências limitadas de cada cláusula SIGNAL cláusula – não é mapeada para a semântica do SQL ServerMixed UPDATE and DELETE clauses – não mapeia para a semântica do SQL ServerCláusula period - não mapeia para a semântica do SQL Server |
Instrução DELETE |
Mapas DELETE do SSMA com as seguintes exceções:Cláusula de referência de tabela – only-table-reference não é mapeada para a semântica do SQL Server Cláusula period - não mapeia para a semântica do SQL Server |
Nível de isolamento e tipo de bloqueio | Mapeado. |
Procedimentos (SQL) | Mapeado. |
Procedimentos (externos) | Requer atualização manual. |
Procedimentos (fonte) | Não mapeie para a semântica do SQL Server. |
Instrução de atribuição | Mapeado. |
CALL Declaração para um procedimento |
Mapeado. |
Instrução CASE |
Mapeado. |
Instrução FOR |
Mapeado. |
Instrução GOTO |
Mapeado. |
Instrução IF |
Mapeado. |
Instrução ITERATE |
Mapeado. |
Instrução LEAVE |
Mapeado. |
Instrução LOOP |
Mapeado. |
Instrução REPEAT |
Mapeado. |
Instrução RESIGNAL |
As condições não são compatíveis. As mensagens podem ser opcionais. |
Instrução RETURN |
Mapeado. |
Instrução SIGNAL |
As condições não são compatíveis. As mensagens podem ser opcionais. |
Instrução WHILE |
Mapeado. |
Instrução GET DIAGNOSTICS |
Mapas GET DIAGNOSTICS do SSMA com as seguintes exceções:ROW_COUNT -Mapeado.Db2_RETURN_STATUS -Mapeado.MESSAGE_TEXT -Mapeado.Db2_SQL_NESTING_LEVEL - não mapeia para a semântica do SQL ServerDb2_TOKEN_STRING - não mapeia para a semântica do SQL Server |
Cursores | O SSMA mapeia cursores com as seguintes exceções:ALLOCATE CURSOR instrução – não mapeia para a semântica do SQL ServerASSOCIATE LOCATORS instrução – não mapeia para a semântica do SQL ServerDECLARE CURSOR instrução – a cláusula de retorno não é mapeada para a semântica do SQL ServerFETCH instrução - Mapeamento parcial. Apenas as variáveis como destino são suportadas. SQLDA DESCRIPTOR não está mapeado para a semântica do SQL Server |
Variáveis | Mapeado. |
Exceções, manipuladores e condições | O SSMA mapeia o tratamento de exceções com as seguintes exceções:EXIT manipuladores - Mapeado.UNDO manipuladores - Mapeado.CONTINUE manipuladores - Não mapeado.Condições - não são mapeadas para a semântica do SQL Server. |
SQL dinâmico | Não mapeado |
Aliases | Mapeado. |
Apelidos | Mapeamento parcial. O processamento manual é necessário para o objeto subjacente |
Sinônimos | Mapeado. |
Funções padrão no DB2 | O SSMA mapeia funções padrão do Db2 quando uma função equivalente está disponível no SQL Server: |
Autorização | Não mapeado |
Predicados | Mapeado. |
Instrução SELECT INTO |
Não mapeado |
Instrução VALUES INTO |
Não mapeado |
Controle de transações | Não mapeado |
Converter objetos de banco de dados do Db2
Para converter objetos de banco de dados Db2, primeiro selecione os objetos que deseja converter e, em seguida, faça com que o SSMA execute a conversão. Para exibir mensagens de saída durante a conversão, navegue até Exibir>saída.
Para converter objetos do Db2 em sintaxe do SQL Server
No Db2 Metadata Explorer, expanda o servidor Db2 e, em seguida, expanda Schemas.
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.
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.
Exibir problemas de conversão
Alguns objetos Db2 podem não ser convertidos. Você pode determinar as taxas de sucesso de conversão exibindo o relatório de conversão resumido.
Exibir um relatório de resumo
No Db2 Metadata Explorer, selecione Schemas.
No painel à direita, selecione a guia Relatório.
Este relatório mostra o relatório de avaliação resumida 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 visualizar o relatório de um esquema individual, selecione o esquema no Db2 Metadata Explorer .
Para visualizar o relatório de um objeto individual, selecione o objeto no Db2 Metadata Explorer. 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.
Exibir problemas de conversão individuais
No Db2 Metadata Explorer, expanda Schemas.
Expanda o esquema que mostra um ícone de erro vermelho.
Sob o esquema, expanda uma pasta que tenha um ícone de erro vermelho.
Selecione o objeto que tem um ícone de erro vermelho.
No painel à direita, selecione a guia Relatório.
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 exibe o código-fonte e vários botões imediatamente acima do código.
Selecione o botão Próximo Problema (um ícone de erro vermelho com uma seta apontando para a direita).
O SSMA destaca o primeiro código-fonte problemático encontrado no objeto atual.
Para cada item que não pôde ser convertido, você deve determinar o que deseja fazer com esse objeto:
Você pode modificar o código-fonte de procedimentos na guia SQL.
É possível modificar o objeto no banco de dados Db2 para remover ou revisar o código problemático. Para carregar o código atualizado no SSMA, você deve atualizar os metadados. Para obter mais informações, consulte Conectar-se ao banco de dados Db2.
Você pode excluir o objeto da migração. No SQL Server Metadata Explorer e no Db2 Metadata Explorer, desmarque a caixa de seleção ao lado do item antes de carregar os objetos no SQL Server e migrar dados do Db2.