Compartilhar via


Converter esquemas do DB2 (DB2ToSQL)

Depois de se conectar ao DB2, conectar-se ao SQL Server e definir as opções de mapeamento de dados e projetos, você poderá 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 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 DB2 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, onfira Configurações do projeto (Conversão) (DB2ToSQL).

Resultados da conversão

A seguinte tabela mostra quais objetos DB2 são convertidos e os objetos SQL Server resultantes:

Objetos DB2 Objetos do SQL Server resultantes
Data Types O SSMA mapeia todos os tipos, exceto os seguintes listados abaixo:

CLOB: algumas funções nativas para trabalhar com esse tipo não são suportadas (por exemplo, CLOB_EMPTY())

BLOB: algumas funções nativas para trabalhar com esse tipo não são suportadas (por exemplo, BLOB_EMPTY())

DBLOB: algumas funções nativas para trabalhar com esse tipo não são suportadas (por exemplo, DBLOB_EMPTY())
Tipos definidos pelo usuário O SSMA mapeia os seguintes dados definidos pelo usuário:

Tipo distinto

Tipo estruturado

Tipos de dados SQL PL - Nota: o tipo de cursor fraco não é suportado.
Registros especiais O SSMA mapeia apenas os registros listados abaixo:

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 O SSMA mapeia CREATE TABLE com as seguintes exceções:

Tabelas de agrupamento multidimensional (MDC)

Tabelas agrupadas de intervalo (RCT)

Tabelas particionadas

Mesa separada

Cláusula DATA CAPTURE

Opção IMPLICITLY HIDDEN

Opção VOLATILE
CREATE VIEW O SSMA mapeia a 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 O SSMA mapeia CREATE INDEX com as seguintes exceções:

Índice XML

Opção BUSINESS_TIME WITHOUT OVERLAPS

Cláusula PARTITIONED

Opção SPECIFICATION ONLY

Opção EXTEND USING

Opção MINPCTUSED

Opção PAGE SPLIT
Gatilhos O SSMA mapeia a seguinte semântica de gatilho:

Gatilhos AFTER / FOR EACH ROW

Gatilhos AFTER /FOR EACH STATEMENT

Gatilhos BEFORE / FOR EACH ROW e INSTEAD OF / FOR EACH ROW
Sequências São mapeados.
Instrução SELECT O SSMA mapeia SELECT com as seguintes exceções:

Cláusula data-change-table-reference - Parcialmente mapeada, mas as tabelas FINAL não são suportadas

Cláusula table-reference - Parcialmente mapeada, 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

Cláusula period-specification - 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 Está mapeado.
Instrução INSERT Está mapeado.
Instrução UPDATE O SSMA mapeia UPDATE com as seguintes exceções:

Cláusula table-reference - Somente table-reference não é mapeada para a semântica do SQL Server

Cláusula period - Não está mapeada.
Instrução MERGE O SSMA mapeia MERGE com as seguintes exceções:

Ocorrências únicas vs. múltiplas de cada cláusula - É mapeada para a semântica do SQL Server para ocorrências limitadas de cada cláusula

Cláusula SIGNAL - não mapeia para a semântica do SQL Server

Cláusulas mistas UPDATE e DELETE - não mapeiam para a semântica do SQL Server

Cláusula period - não mapeia para a semântica do SQL Server
Instrução DELETE O SSMA mapeia DELETE com as seguintes exceções:

Cláusula table-reference - Somente 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 Está mapeado.
Procedimentos (SQL) São mapeados.
Procedimentos (externos) Requer atualização manual.
Procedimentos (Fonte) Não mapeie para a semântica do SQL Server.
Instrução de atribuição Está mapeado.
Instrução CALL para um procedimento Está mapeado.
Instrução CASE Está mapeado.
Instrução FOR Está mapeado.
instrução GOTO Está mapeado.
Instrução IF Está mapeado.
Instrução ITERATE Está mapeado.
Instrução LEAVE Está mapeado.
Instrução LOOP Está mapeado.
Instrução REPEAT Está mapeado.
Instrução RESIGNAL As condições não são compatíveis. As mensagens podem ser opcionais.
Instrução RETURN Está mapeado.
Instrução SIGNAL As condições não são compatíveis. As mensagens podem ser opcionais.
Instrução WHILE Está mapeado.
Instrução GET DIAGNOSTICS O SSMA mapeia GET DIAGNOSTICS com as seguintes exceções:

ROW_COUNT - está mapeado.

DB2_RETURN_STATUS - está mapeado.

MESSAGE_TEXT - está mapeado.

DB2_SQL_NESTING_LEVEL - não mapeia para a semântica do SQL Server

DB2_TOKEN_STRING - não mapeia para a semântica do SQL Server
Cursores O SSMA mapeia CURSORS com as seguintes exceções:

Instrução ALLOCATE CURSOR - não mapeia para a semântica do SQL Server

Instrução ASSOCIATE LOCATORS - não mapeia para a semântica do SQL Server

Instrução DECLARE CURSOR - a cláusula de retornável não é mapeada para a semântica do SQL Server

Instrução FETCH - mapeamento parcial. Apenas as variáveis como destino são suportadas. O SQLDA DESCRIPTOR não é mapeado para a semântica do SQL Server
Variáveis São mapeados.
Exceções, manipuladores e condições O SSMA mapeia o “tratamento de exceções” com as seguintes exceções:

Manipuladores EXIT - são mapeados.

Manipuladores UNDO - são mapeados.

Manipuladores CONTINUE - não são mapeados.

Condições - não são mapeadas para a semântica do SQL Server.
SQL dinâmico Não mapeado
Aliases São mapeados.
Apelidos Mapeamento parcial. O processamento manual é necessário para o objeto subjacente
Sinônimos São mapeados.
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 São mapeados.
instrução SELECT INTO Não mapeado
Instrução VALUES INTO Não mapeado
Controle de transações Não mapeado

Convertendo objetos de banco de dados DB2

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

Para converter objetos DB2 em sintaxe do SQL Server

  1. No DB2 Metadata Explorer, expanda o servidor DB2 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 na pasta pai que o contém e selecionar 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.

Para exibir um relatório de resumo

  1. No DB2 Metadata Explorer, 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 DB2 Metadata Explorer.

    • Para exibir 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.

Para exibir problemas de conversão individuais

  1. No DB2 Metadata Explorer, 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ê precisará determinar o que deseja fazer com aquele 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ê terá que atualizar os metadados. Para obter mais informações, confira Conexão com o banco de dados DB2 (DB2ToSQL).

  • 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 os dados do DB2.

Próxima etapa

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

Confira também

Migrar dados do DB2 para o SQL Server (DB2ToSQL)