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 opzioneVOLATILE 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 opzioneClausola PARTITIONED SPECIFICATION ONLY opzioneEXTEND USING opzioneMINPCTUSED opzionePAGE SPLIT opzione |
Trigger | SSMA esegue il mapping della semantica dei trigger seguenti:AFTER / FOR EACH ROW TriggerAFTER / FOR EACH STATEMENT TriggerBEFORE / FOR EACH ROW trigger 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 supportateclausola 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 ServerClausole e DELETE misteUPDATE : non esegue il mapping alla semantica di SQL ServerClausola 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 ServerDb2_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 ServerASSOCIATE LOCATORS istruzione : non esegue il mapping alla semantica di SQL ServerDECLARE CURSOR statement : la clausola Returnability non è mappata alla semantica di SQL ServerFETCH 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
In Esplora metadati Db2 espandere il server Db2, quindi espandere Schemi.
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.
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
In Esplora metadati db2 selezionare Schemi.
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
In Esplora metadati db2 espandere Schemi.
Espandere lo schema che mostra un'icona di errore rossa.
Nello schema, espandere una cartella con un'icona di errore rossa.
Selezionare l'oggetto che evidenzia un'icona di errore di colore rosso.
Nel riquadro a destra, selezionare la scheda Report.
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.
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.