Condividi tramite


Convertire gli schemi Db2 (Db2ToSQL)

Dopo la connessione sia a Db2 che a SQL Server e dopo aver impostato le opzioni di mapping dei progetti e dei dati, è possibile convertire oggetti di database Db2 in oggetti di database di SQL Server.

Processo di conversione

La conversione di oggetti di database accetta le definizioni degli oggetti da Db2, le converte in oggetti di SQL Server simili e quindi carica queste informazioni nei metadati di SQL Server Migration Assistant (SSMA). Non carica le informazioni nell'istanza di SQL Server. È quindi possibile visualizzare gli oggetti e le relative proprietà usando SQL Server Metadata Explorer.

Durante la conversione, SSMA visualizza i messaggi di output nel riquadro di output e i messaggi di errore nel riquadro Elenco errori. Usare le informazioni sull'output e sull'errore per determinare se è necessario modificare i database Db2 o il processo di conversione per ottenere i risultati di conversione desiderati.

Configurare le opzioni di conversione

Prima di convertire gli oggetti, esaminare le opzioni di conversione del progetto nella finestra di dialogo Impostazioni progetto. Usare questa finestra di dialogo per impostare il modo in cui SSMA converte le funzioni e le variabili globali. Per altre informazioni vedere Impostazioni progetto (Conversione).

Risultati della conversione

Nella tabella seguente vengono illustrati gli oggetti Db2 convertiti e gli oggetti di SQL Server risultanti:

Oggetti Db2 Oggetti SQL Server risultanti
Tipo di dati SSMA esegue il mapping di ogni tipo ad eccezione dei tipi seguenti:

CLOB: alcune funzioni native che funzionano con questo tipo non sono supportate (ad esempio, CLOB_EMPTY())

BLOB: alcune funzioni native per l'uso con questo tipo non sono supportate (ad esempio, BLOB_EMPTY())

DBLOB: alcune funzioni native per l'uso con questo tipo non sono supportate (ad esempio, DBLOB_EMPTY())
Tipi definiti dall'utente SSMA esegue il mapping degli oggetti definiti dall'utente seguenti:

- Tipo distinct
- Tipo strutturato
- Tipi di dati SQL PL

Nota: i tipi di cursore deboli non sono supportati.
Registri speciali SSMA esegue solo il mapping dei registri seguenti:

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

Altri registri speciali non vengono mappati alla semantica di SQL Server.
CREATE TABLE SSMA esegue il mapping CREATE TABLE con le eccezioni seguenti:

Tabelle MDC (Multidimensional Clustering)
Tabelle cluster di intervalli (RCT)
Tabelle partizionate
Tabella scollegata
Clausola DATA CAPTURE
IMPLICITLY HIDDEN opzione
VOLATILE opzione
CREATE VIEW Le mappe CREATE VIEW SSMA con WITH LOCAL CHECK OPTION ma altre opzioni non vengono mappate alla semantica di SQL Server
CREATE INDEX SSMA esegue il mapping CREATE INDEX con le eccezioni seguenti:

Indice XML
BUSINESS_TIME WITHOUT OVERLAPS opzione
Clausola PARTITIONED
SPECIFICATION ONLY opzione
EXTEND USING opzione
MINPCTUSED opzione
PAGE SPLIT opzione
Trigger SSMA esegue il mapping della semantica dei trigger seguenti:

AFTER / FOR EACH ROW Trigger

AFTER / FOR EACH STATEMENT Trigger

BEFORE / FOR EACH ROWtrigger e INSTEAD OF / FOR EACH ROW
Sequenze Mappato.
SELECT - istruzione SSMA esegue il mapping SELECT con le eccezioni seguenti:

clausola data-change-table-reference - Mappato parzialmente, ma FINAL le tabelle non sono supportate

clausola table-reference - Mappato parzialmente, ma solo-table-reference, outer-table-reference, analyze-table-expression, collection-derived-table, xmltable-expression non viene mappato alla semantica di SQL Server

period-specification clausola : non mappata.

Clausola continue-handler - Non mappata.

Clausola typed-correlation - Non mappata.

Clausola concurrent-access-resolution - Non mappata.
VALUES - istruzione Mappato.
INSERT - istruzione Mappato.
UPDATE - istruzione SSMA esegue il mapping UPDATE con le eccezioni seguenti:

Clausola table-reference- Only-table-reference non è mappata alla semantica di SQL Server

Clausola Period : non è mappata.
MERGE - istruzione SSMA esegue il mapping MERGE con le eccezioni seguenti:

Singola e più occorrenze di ogni clausola - Mappata alla semantica di SQL Server per occorrenze limitate di ogni clausola

SIGNAL clausola : non esegue il mapping alla semantica di SQL Server

Clausole e DELETE misteUPDATE: non esegue il mapping alla semantica di SQL Server

Clausola period - non esegue il mapping alla semantica di SQL Server
DELETE - istruzione SSMA esegue il mapping DELETE con le eccezioni seguenti:

Clausola table-reference- Only-table-reference non è mappata alla semantica di SQL Server

Clausola period - non esegue il mapping alla semantica di SQL Server
Livello di isolamento e tipo di blocco Mappato.
Procedure (SQL) Mappato.
Procedure (esterne) Aggiornamenti manuali richiesti.
Procedure (origine) Non eseguire il mapping alla semantica di SQL Server.
Istruzione di assegnazione Mappato.
CALL istruzione per una procedura Mappato.
CASE - istruzione Mappato.
FOR - istruzione Mappato.
GOTO - istruzione Mappato.
IF - istruzione Mappato.
ITERATE - istruzione Mappato.
LEAVE - istruzione Mappato.
LOOP - istruzione Mappato.
REPEAT - istruzione Mappato.
RESIGNAL - istruzione Le condizioni non sono supportate. I messaggi possono essere facoltativi.
RETURN - istruzione Mappato.
SIGNAL - istruzione Le condizioni non sono supportate. I messaggi possono essere facoltativi.
WHILE - istruzione Mappato.
GET DIAGNOSTICS - istruzione SSMA esegue il mapping GET DIAGNOSTICS con le eccezioni seguenti:

ROW_COUNT -Mappato.

Db2_RETURN_STATUS -Mappato.

MESSAGE_TEXT -Mappato.

Db2_SQL_NESTING_LEVEL - non esegue il mapping alla semantica di SQL Server

Db2_TOKEN_STRING - non esegue il mapping alla semantica di SQL Server
Cursori SSMA esegue il mapping dei cursori con le eccezioni seguenti:

ALLOCATE CURSOR istruzione : non esegue il mapping alla semantica di SQL Server

ASSOCIATE LOCATORS istruzione : non esegue il mapping alla semantica di SQL Server

DECLARE CURSOR statement : la clausola Returnability non è mappata alla semantica di SQL Server

FETCH statement - Mapping parziale. Sono supportate solo le variabili come destinazioni. SQLDA DESCRIPTOR non è mappato alla semantica di SQL Server
Variabili Mappato.
Eccezioni, gestori e condizioni SSMA esegue il mapping della gestione delle eccezioni con le eccezioni seguenti:

EXIT gestori : mappati.

UNDO gestori : mappati.

CONTINUE gestori : non mappato.

Condizioni - Non esegue il mapping alla semantica di SQL Server.
SQL dinamica Non viene eseguito il mapping.
Alias Mappato.
Nomi alternativi Mapping parziale. L'elaborazione manuale è necessaria per l'oggetto sottostante
Sinonimi Mappato.
Funzioni standard in Db2 SSMA esegue il mapping delle funzioni standard Db2 quando in SQL Server è disponibile una funzione equivalente:
Autorizzazione Non viene eseguito il mapping.
Predicati Mappato.
SELECT INTO - istruzione Non viene eseguito il mapping.
VALUES INTO - istruzione Non viene eseguito il mapping.
Controllo della transazione Non viene eseguito il mapping.

Convertire oggetti di database Db2

Per convertire gli oggetti di database Db2, selezionare prima gli oggetti da convertire e quindi eseguire la conversione di SSMA. Per visualizzare i messaggi di output durante la conversione, passare a Visualizza>output.

Per convertire gli oggetti Db2 nella sintassi di SQL Server

  1. In Esplora metadati Db2 espandere il server Db2, quindi espandere Schemi.

  2. Selezionare gli oggetti da convertire:

    • Per convertire tutti gli schemi, selezionare la casella di controllo accanto a Schemi.

    • Per convertire od omettere un database, selezionare la casella di controllo accanto al nome dello schema.

    • Per convertire o omettere una categoria di oggetti, espandere uno schema e quindi selezionare o deselezionare la casella di controllo accanto alla categoria.

    • Per convertire od omettere singoli oggetti, espandere la cartella delle categorie e quindi selezionare o deselezionare la casella di controllo accanto all'oggetto.

  3. Per convertire tutti gli oggetti selezionati, fare clic con il pulsante destro del mouse su Schemi e scegliere Converti schema.

    È anche possibile convertire singoli oggetti o categorie di oggetti facendo clic con il pulsante destro del mouse sull'oggetto o sulla relativa cartella padre e quindi scegliendo Converti schema.

Visualizzare i problemi di conversione

Alcuni oggetti Db2 potrebbero non essere convertiti. È possibile determinare i tassi di esito positivo della conversione visualizzando il report di conversione riepilogativo.

Visualizzare un report sintetico

  1. In Esplora metadati db2 selezionare Schemi.

  2. Nel riquadro a destra, selezionare la scheda Report.

    Questo report mostra il report di valutazione di riepilogo per tutti gli oggetti di database valutati o convertiti. È anche possibile visualizzare un report di riepilogo per singoli oggetti:

    • Per visualizzare il report per un singolo schema, selezionare lo schema in Esplora metadati Db2.

    • Per visualizzare il report per un singolo oggetto, selezionare l'oggetto in Esplora metadati Db2. Gli oggetti con problemi di conversione hanno un'icona di errore rossa.

Per gli oggetti che non sono riusciti a eseguire la conversione, è possibile visualizzare la sintassi che ha generato l'errore di conversione.

Visualizzare i singoli problemi di conversione

  1. In Esplora metadati db2 espandere Schemi.

  2. Espandere lo schema che mostra un'icona di errore rossa.

  3. Nello schema, espandere una cartella con un'icona di errore rossa.

  4. Selezionare l'oggetto che evidenzia un'icona di errore di colore rosso.

  5. Nel riquadro a destra, selezionare la scheda Report.

  6. Nella parte superiore della scheda Report è presente un elenco a discesa. Se l'elenco mostra Statistiche, modificare la selezione in Origine.

    SSMA visualizza il codice sorgente e diversi pulsanti immediatamente sopra il codice.

  7. Selezionare il pulsante Avanti problema (icona rossa di errore con una freccia rivolta a destra).

    SSMA evidenzia il primo codice sorgente problematico trovato nell'oggetto corrente.

Per ogni elemento che non è stato possibile convertire, è necessario determinare le operazioni da eseguire con tale oggetto:

  • È possibile modificare il codice sorgente per le procedure nella scheda SQL.

  • È possibile modificare l'oggetto nel database Db2 per rimuovere o modificare il codice problematico. Per caricare il codice aggiornato in SSMA, è necessario aggiornare i metadati. Per altre informazioni, vedere Connettersi al database Db2.

  • È possibile escludere l'oggetto dalla migrazione. In Esplora metadati di SQL Server e Db2 Metadata Explorer deselezionare la casella di controllo accanto all'elemento prima di caricare gli oggetti in SQL Server e eseguire la migrazione dei dati da Db2.