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 a cluster per intervalli (RCT)
Tabelle partizionate
Tabella separata
Clausola DATA CAPTURE
IMPLICITLY HIDDEN opzione
VOLATILE opzione
CREATE VIEW SSMA mappa CREATE VIEW 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 mappa la semantica dei seguenti trigger:

AFTER / FOR EACH ROW Attivatori

AFTER / FOR EACH STATEMENT Trigger o attivatori

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 le tabelle FINAL 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 di correlazione tipizzata - Non mappata.

Clausola di risoluzione dell'accesso concorrente - Non è mappata.
VALUES istruzione Mappato.
INSERT istruzione Mappato.
UPDATE istruzione SSMA esegue il mapping UPDATE con le eccezioni seguenti:

Clausola di riferimento tabella - il solo riferimento alla tabella non è mappato alla semantica di SQL Server

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

Singola vs Multipla Occorrenza di ogni clausola - Mappato alla semantica di SQL Server per occorrenze limitate di ogni clausola

SIGNAL clausola - non corrisponde alla semantica di SQL Server

Clausole miste UPDATE e DELETE: non mappano la 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 di riferimento-tabella - solo il riferimento alla tabella non è mappato 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 di una procedura Mappato.
CASE: istruzione Mappato.
FOR istruzione Mappato.
GOTO istruzione Tracciato.
IF istruzione Mappato.
ITERATE dichiarazione Cartografato
LEAVE istruzione Mappato.
LOOP istruzione È stato 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 - dichiarazione 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 corrisponde alla semantica di SQL Server

Db2_TOKEN_STRING - non corrisponde 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 corrisponde alla semantica di SQL Server

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

FETCH statement - Mappatura parziale. Sono supportate solo variabili come destinazione. SQLDA DESCRIPTOR non è mappato alla semantica di SQL Server
Variabili Mappato/a.
Eccezioni, gestori e condizioni SSMA mappa la gestione delle eccezioni con le eccezioni seguenti:

EXIT gestori : mappati.

UNDO gestori : mappati.

CONTINUE gestori: non mappati.

Condizioni - Non rispecchia la semantica di SQL Server.
SQL dinamica Non mappato.
Alias Mappato.
Soprannomi Mappatura 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 mappato.
Predicati Mappato.
SELECT INTO istruzione Non mappato
VALUES INTO istruzione Non mappato.
Controllo della transazione Non mappato

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