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 option
VOLATILE 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 option
Cláusula PARTITIONED
SPECIFICATION ONLY option
EXTEND USING option
MINPCTUSED option
PAGE SPLIT option
Gatilhos O SSMA mapeia a seguinte semântica de gatilho:

AFTER / FOR EACH ROW Gatilhos

AFTER / FOR EACH STATEMENT Gatilhos

BEFORE / 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 tabelas

table-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 Server

Mixed UPDATE and DELETE clauses – não mapeia para a semântica do SQL Server

Clá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 Server

Db2_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 Server

ASSOCIATE LOCATORS instrução – não mapeia para a semântica do SQL Server

DECLARE CURSOR instrução – a cláusula de retorno não é mapeada para a semântica do SQL Server

FETCH 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

  1. No Db2 Metadata Explorer, expanda o servidor Db2 e, em seguida, expanda Schemas.

  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.

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

  1. No Db2 Metadata Explorer, selecione Schemas.

  2. 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

  1. No Db2 Metadata Explorer, expanda Schemas.

  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 à direita, selecione a 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 exibe o código-fonte e vários botões imediatamente acima do código.

  7. 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.