Partilhar via


Converter esquemas Db2 (Db2ToSQL)

Depois de se conectar ao DB2 e ao SQL Server e definir opções de mapeamento de projeto e dados, você pode converter objetos de banco de dados 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 carrega essas informações nos metadados do Assistente de Migração do SQL Server (SSMA). Ele não carrega as informações na instância do SQL Server. Em seguida, você pode exibir os objetos e suas propriedades usando o Gerenciador de Metadados do SQL Server.

Durante a conversão, o SSMA imprime mensagens de saída no painel Saída e 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 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 esta caixa de diálogo para definir como o SSMA converte funções e variáveis globais. Para obter mais informações, consulte Configurações do projeto (conversão).

Resultados da conversão

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

Objetos DB2 Objetos resultantes do SQL Server
Tipos de dados O SSMA mapeia todos os tipos, exceto os seguintes tipos:

CLOB: Algumas funções nativas que funcionam com este tipo não são suportadas (por exemplo, CLOB_EMPTY())

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

DBLOB: Algumas funções nativas para trabalhar com este tipo não são suportadas (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

Nota: Tipos de cursor fracos não são suportados.
Registos especiais A SSMA mapeia apenas os seguintes registos:

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

Tabelas de agrupamento multidimensional (MDC)
Tabelas com agrupamento por intervalo (RCT)
Tabelas particionadas
Mesa isolada
DATA CAPTURE cláusula
IMPLICITLY HIDDEN opção
VOLATILE opção
CREATE VIEW O SSMA mapeia 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 Os SSMA mapeiam CREATE INDEX com as seguintes exceções:

Índice XML
BUSINESS_TIME WITHOUT OVERLAPS opção
PARTITIONED cláusula
SPECIFICATION ONLY opção
EXTEND USING opção
Opção MINPCTUSED
PAGE SPLIT opção
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.
Declaração SELECT SSMA mapeia SELECT com as seguintes exceções:

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

cláusula table-reference - Parcialmente mapeada, mas os termos "only-table-reference", "outer-table-reference", "analyze-table-expression", "collection-derived-table", e "xmltable-expression" não são mapeados para a semântica do SQL Server.

period-specification cláusula - Não está mapeada.

Cláusula do manipulador de continuidade - Não mapeada.

Cláusula de correlação digitada - Não mapeada.

Cláusula de resolução de acesso simultâneo - Não está mapeada.
Declaração de VALUES Mapeado.
Declaração INSERT Mapeado.
Declaração UPDATE Os SSMA mapeiam o UPDATE com as seguintes exceções:

Cláusula de referência de tabela - somente referência de tabela não é mapeada para semântica do SQL Server

Cláusula de período - Não está mapeada.
Declaração MERGE O SSMA mapeia MERGE com as seguintes exceções:

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

Cláusula SIGNAL - não corresponde à semântica do SQL Server

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

Cláusula de período - não corresponde à semântica do servidor SQL
Declaração DELETE SSMA mapeia DELETE com as seguintes exceções:

Cláusula de referência de tabela - referência exclusiva de tabela não é mapeada para a semântica do SQL Server

Cláusula de período - não corresponde à 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.
Declaração de atribuição Mapeado.
CALL declaração para um procedimento Mapeado.
Declaração CASE Mapeado.
Declaração FOR Mapeado.
Declaração GOTO Mapeado.
Declaração IF Mapeado.
Declaração ITERATE Mapeado.
Declaração LEAVE Mapeado.
Declaração LOOP Mapeado.
Declaração REPEAT Mapeado.
Declaração RESIGNAL As condições não são suportadas. As mensagens podem ser opcionais.
Declaração RETURN Mapeado.
Declaração SIGNAL As condições não são suportadas. As mensagens podem ser opcionais.
Declaração WHILE Mapeado.
Declaração GET DIAGNOSTICS Os mapas SSMA para GET DIAGNOSTICS têm 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 corresponde à semântica do SQL Server
Cursores O SSMA mapeia cursores com as seguintes exceções:

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

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

DECLARE CURSOR - A cláusula de retornábilidade não está mapeada para a semântica do SQL Server

FETCH - 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 de tratamento de exceções com as seguintes exceções:

EXIT controladores - Mapeados.

UNDO controladores - Mapeado.

CONTINUE manipuladores - Não mapeados.

Condições - Não corresponde às semânticas do SQL Server.
SQL dinâmico Não mapeado.
Pseudónimos 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.
Declaração SELECT INTO Não mapeado.
Declaração VALUES INTO Não mapeado.
Controlo de transações Não mapeado.

Converter objetos de banco de dados 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 visualizar as mensagens de saída durante a conversão, navegue até Exibir>Saída.

Para converter objetos Db2 em sintaxe do SQL Server

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

  2. Selecione objetos para converter:

    • 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 rato em Esquemas e selecione Converter Esquema.

    Você também pode converter objetos individuais ou categorias de objetos ao clicar com o botão direito do rato sobre o objeto ou na pasta principal deste e, em seguida, selecionar Converter esquema.

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

Ver um relatório de resumo

  1. No Db2 Metadata Explorer, selecione Schemas.

  2. No painel direito, selecione o separador Relatório .

    Este relatório mostra o relatório de avaliação resumido 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 para 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.

Ver problemas de conversão individuais

  1. No Db2 Metadata Explorer, expanda Schemas.

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

  3. No 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, selecione o separador 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.

    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 para a direita).

    O SSMA destaca o primeiro código-fonte problemático que encontra 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 dos procedimentos na aba SQL.

  • Você pode 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 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.