Conversione di schemi Oracle (OracleToSQL)
Dopo aver effettuato la connessione a Oracle, a SQL Server o ad Azure SQL e aver configurato le opzioni di mapping di progetti e dati, è possibile convertire gli oggetti di database Oracle in oggetti SQL Server.
Processo di conversione
La conversione degli oggetti di database ottiene le definizioni degli oggetti da Oracle, le converte in oggetti di SQL Server simili e quindi carica queste informazioni nei metadati di 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 sugli errori per determinare se è necessario modificare i database Oracle o il processo di conversione per ottenere i risultati della conversione desiderati.
Impostazione delle opzioni di conversione
Prima di convertire gli oggetti, esaminare le opzioni di conversione del progetto nella finestra di dialogo Impostazioni progetto. Usando questa finestra di dialogo, è possibile impostare il modo in cui SSMA converte le funzioni e le variabili globali. Per altre informazioni vedere Impostazioni progetto (Conversione) (OracleToSQL).
Risultati della conversione
Nella tabella seguente vengono illustrati gli oggetti Oracle convertiti e gli oggetti di SQL Server risultanti:
Oggetti Oracle | Oggetti SQL Server risultanti |
---|---|
Funzioni | Se la funzione può essere convertita direttamente in Transact-SQL, SSMA crea una funzione. In alcuni casi, la funzione deve essere convertita in una stored procedure. In questo caso, SSMA crea una stored procedure e una funzione che chiama la stored procedure. |
Procedure | Se la procedura può essere convertita direttamente in Transact-SQL, SSMA crea una stored procedure. In alcuni casi, una stored procedure deve essere chiamata in una transazione autonoma. In questo caso, SSMA crea due stored procedure: una che implementa la procedura e un'altra usata per chiamare la stored procedure di implementazione. |
Pacchetti | SSMA crea un set di stored procedure e funzioni unificate da nomi di oggetti simili. |
Sequenze | SSMA crea oggetti sequenza (SQL Server 2012 o SQL Server 2014) o emula le sequenze Oracle. |
Tabelle con oggetti dipendenti come indici e trigger | SSMA crea tabelle con oggetti dipendenti. |
Viste con oggetti dipendenti come trigger | SSMA crea viste con oggetti dipendenti. |
Viste materializzate | SSMA crea viste indicizzate in SQL server con alcune eccezioni. La conversione avrà esito negativo se la vista materializzata include uno o più dei costrutti seguenti: Funzione definita dall'utente Campo/funzione/espressione non deterministici nelle clausole SELECT, WHERE o GROUP BY Utilizzo della colonna Float nelle clausole SELECT*, WHERE o GROUP BY (caso speciale del problema precedente) Tipo di dati personalizzato (incluse tabelle annidate) COUNT(distinct <field>) FETCH OUTER join (LEFT, RIGHT o FULL) Sottoquery, altra vista OVER, RANK, LEAD, LOG MIN, MAX UNION, MINUS, INTERSECT HAVING |
Trigger | SSMA crea trigger in base alle regole seguenti: I trigger BEFORE vengono convertiti in trigger INSTEAD OF. I trigger AFTER vengono convertiti in trigger AFTER. I trigger INSTEAD OF vengono convertiti in trigger INSTEAD OF. Più trigger INSTEAD OF definiti nella stessa operazione vengono combinati in un unico trigger. I trigger a livello di riga vengono emulati con i cursori. I trigger comporti vengono convertiti in trigger INSTEAD OF. Più trigger composti vengono combinati in un singolo trigger I trigger a catena vengono convertiti in più trigger individuali. |
Sinonimi | I sinonimi vengono creati per i tipi di oggetto seguenti: Tabelle e tabelle di oggetti Viste e viste di oggetti Stored procedure Funzioni I sinonimi per gli oggetti seguenti vengono risolti e sostituiti da riferimenti diretti agli oggetti: Sequenze Pacchetti Oggetti dello schema di classe Java Tipi di oggetto definiti dall'utente Non è possibile eseguire la migrazione dei sinonimi di un altro sinonimo che verranno contrassegnati come errori. I sinonimi non vengono creati per le viste materializzate. |
Tipi definiti dall'utente | SSMA non fornisce il supporto per la conversione dei tipi definiti dall'utente. I tipi definiti dall'utente, incluso il relativo utilizzo nei programmi PL/SQL, sono contrassegnati con errori di conversione speciali guidati dalle regole seguenti: La colonna di tabella di un tipo definito dall'utente viene convertita in VARCHAR(8000). L'argomento del tipo definito dall'utente in una stored procedure o funzione o viene convertito in VARCHAR(8000). La variabile del tipo definito dall'utente nel blocco PL/SQL viene convertita in VARCHAR(8000). La tabella oggetti viene convertita in una tabella Standard. La vista oggetti viene convertita in una vista Standard. |
Convertire gli oggetti di database Oracle
Per convertire gli oggetti di database Oracle, selezionare prima gli oggetti da convertire e quindi eseguire la conversione di SSMA. Per visualizzare i messaggi di output durante la conversione, scegliere Output dal menu Visualizza.
Per convertire gli oggetti Oracle nella sintassi di SQL Server
In Esplora metadati Oracle espandere il server Oracle, 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.
Visualizzazione dei problemi di conversione
Alcuni oggetti Oracle potrebbero non essere convertiti. È possibile determinare i tassi di esito positivo della conversione visualizzando il report di conversione riepilogativo.
Per visualizzare un report di riepilogo
In Esplora metadati Oracle, selezionare Schemi.
Nel riquadro a destra, selezionare la scheda Report.
Questo report mostra il report di valutazione riepilogativo per tutti gli oggetti di database che sono stati 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 Oracle.
Per visualizzare il report per un singolo oggetto, selezionare l'oggetto in Esplora metadati Oracle. Gli oggetti con problemi di conversione sono contrassegnati da un'icona di errore di colore rosso.
Per gli oggetti che non sono riusciti a eseguire la conversione, è possibile visualizzare la sintassi che ha generato l'errore di conversione.
Per visualizzare singoli problemi di conversione
In Esplora metadati Oracle, 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 con un'icona di errore di colore rosso.
Nel riquadro a destra fare clic sulla scheda Report.
Nella parte superiore della scheda Report è presente un elenco a discesa. Se l'elenco mostra Statistiche, modificare la selezione in Origine.
SSMA visualizzerà il codice sorgente e diversi pulsanti immediatamente sopra il codice.
Fare clic sul pulsante Problema successivo. Si tratta di un'icona di errore rossa con una freccia che punta 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 Oracle per rimuovere o rivedere il codice problematico. Per caricare il codice aggiornato in SSMA, è necessario aggiornare i metadati. Per altre informazioni, vedere Connessione a Oracle Database (OracleToSQL).
È possibile escludere l'oggetto dalla migrazione. In Esplora metadati di SQL Server ed Esplora metadati Oracle, deselezionare la casella di controllo accanto all'elemento prima di caricare gli oggetti in SQL Server e eseguire la migrazione dei dati da Oracle.
Passaggio successivo
Il passaggio successivo del processo di migrazione consiste nel caricare gli oggetti convertiti in SQL Server.