Impostazioni progetto (conversione) (OracleToSQL)

La pagina di conversione della finestra di dialogo Impostazioni progetto contiene le impostazioni per personalizzare il modo in cui SSMA converte la sintassi Oracle nella sintassi di SQL Server.

Il riquadro Conversione è disponibile nelle finestre di dialogo Impostazioni progetto e Impostazioni progetto predefinite:

  • Per specificare le impostazioni per tutti i progetti SSMA, scegliere Impostazioni progetto predefinite dal menu Strumenti, selezionare il tipo di progetto di migrazione per cui è necessario visualizzare o modificare le impostazioni dall'elenco a discesa Versione destinazione migrazione, quindi fare clic su Generale nella parte inferiore del riquadro a sinistra, e infine su Conversione.

  • Per specificare le impostazioni per il progetto corrente, scegliere Impostazioni progetto dal menu Strumenti, fare clic su Generale nella parte inferiore del riquadro a sinistra, quindi su Conversione.

Funzioni predefinite e pacchetti forniti

Termine Definizione
Convertire la funzione COUNT in COUNT_BIG Se è probabile che le funzioni COUNT restituiscano valori superiori a 2.147.483.647, ovvero 231-1, è necessario convertire le funzioni in COUNT_BIG.

Se si seleziona , SSMA convertirà tutti gli usi di COUNT in COUNT_BIG.

Se si seleziona No, le funzioni rimarranno come COUNT. SQL Server restituirà un errore se la funzione restituisce un valore maggiore di 231-1.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/estesa:
Modalità ottimistica: No
Convertire le chiamate di funzione SUBSTR in chiamate di funzione SUBSTRING A seconda del numero di parametri, SSMA può convertire le chiamate di funzione Oracle SUBSTR in chiamate di funzione di SQL Server substring. Se SSMA non è in grado di convertire una chiamata di funzione SUBSTR o il numero di parametri non è supportato, SSMA convertirà la chiamata di funzione SUBSTR in una chiamata di funzione SSMA personalizzata.

Se si seleziona , SSMA convertirà le chiamate di funzione SUBSTRche usano tre parametri in SQL Server substring. Altre funzioni SUBSTR verranno convertite per chiamare la funzione SSMA personalizzata.

Se si seleziona No, SSMA convertirà la chiamata di funzione SUBSTR in una chiamata di funzione SSMA personalizzata.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica:
Modalità estesa: No
Convertire le chiamate di funzione TO_CHAR(data, formato) SSMA può convertire le TO_CHAR(date, format) Oracle in routine dallo schema ssma_oracle.

Se si seleziona Usare la funzione TO_CHAR_DATE, SSMA converte TO_CHAR(date, format) nella funzione TO_CHAR_DATE utilizzando la lingua inglese per la conversione.

Se si seleziona Usare la funzione TO_CHAR_DATE_LS (NLS Care), SSMA converte TO_CHAR(date, format) nella funzione TO_CHAR_DATE_LS utilizzando la lingua di sessione per la conversione.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: uso della funzione TO_CHAR_DATE
Modalità estesa: uso della funzione TO_CHAR_DATE_LS (NLS care)
Generare un errore per DBMS_SQL.PARSE Se si seleziona Errore, SSMA genera un errore durante la conversione DBMS_SQL.PARSE.

Se si seleziona Avviso, SSMA genera un avviso nella conversione DBMS_SQL.PARSE.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:
Modalità di impostazione predefinita/ottimistica: Errore
Usare ISNULL nelle chiamate di funzione CONCAT L’istruzione ISNULL viene usata nelle chiamate di funzione CONCAT per emulare il comportamento di Oracle. Per questa impostazione sono presenti le opzioni seguenti:



NO

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No
Modalità estesa:
Usare ISNULL nelle chiamate di funzione REPLACE L’istruzione ISNULL viene usata nelle chiamate di funzione REPLACE per emulare il comportamento di Oracle. Per questa impostazione sono presenti le opzioni seguenti:



NO

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No
Modalità estesa:
Quando possibile, usare la funzione di conversione nativa Se si seleziona , SSMA converte TO_CHAR(date, format) in funzione di conversione nativa quando possibile.

Se si seleziona No, SSMA converte TO_CHAR(date, format) in TO_CHAR_DATE o TO_CHAR_DATE_LS (è definito dalle opzioni Converti TO_CHAR(data, formato).

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica:
Modalità estesa: No

Messaggi di conversione

Termine Definizione
Generare messaggi relativi ai problemi Specifica se SSMA genera messaggi informativi durante la conversione, li visualizza nel riquadro Output e li aggiunge al codice convertito.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No
Modalità estesa: No

Opzioni varie

Termine Definizione
Eseguire la trasmissione di espressioni ROWNUM come numeri interi Quando SSMA converte espressioni ROWNUM, converte l'espressione in una clausola TOP seguita dall'espressione. Nell'esempio seguente viene illustrata ROWNUM in un'istruzione DELETE di Oracle:

DELETE FROM Table1
WHERE ROWNUM < expression and Field1 >= 2

L’esempio seguente mostra il Transact-SQL risultante:

DELETE TOP (expression-1)
FROM Table1
WHERE Field1>=2

L'oggetto TOP richiede che l'espressione di clausole TOP restituisca un numero intero. Se l'intero è negativo, l'istruzione genererà un errore.

Se si seleziona , SSMA esegue la trasmissione dell'espressione come numero intero.

Se si seleziona No, SSMA contrassegnerà tutte le espressioni non in numeri interi come errore nel codice convertito.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/estesa: No
Modalità ottimistica:
Mapping dello schema predefinito Questa impostazione specifica il modo in cui gli schemi Oracle vengono mappati in quelli di SQL Server. In questa impostazione sono disponibili due opzioni:

Schema a database: in questa modalità lo schema sch1 di Oracle verrà mappato per impostazione predefinita allo schema dbo di SQL Server nel database sch1 di SQL Server.

Schema a schema: in questa modalità lo schema sch1 di Oracle verrà mappato per impostazione predefinita allo schema sch1 di SQL Server nel database predefinito di SQL Server fornito nell’interazione di collegamento.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: schema a database
Emulare il comportamento dei valori Null di Oracle nelle clausole ORDER BY I valori NULL vengono ordinati in modo diverso in SQL Server e Oracle:

In SQL Server i valori NULL sono i valori più bassi in un elenco ordinato. In un elenco crescente, i valori NULL verranno visualizzati per primi.

In Oracle i valori NULL sono i valori più alti in un elenco ordinato. Per impostazione predefinita, i valori NULL vengono visualizzati per ultimi in un elenco di ordine crescente.

Oracle include le clausole NULLS FIRST e NULLS LAST che consentono di modificare il modo in cui Oracle ordina i NULL.

SSMA può emulare il comportamento ORDER BY di Oracle controllando i valori NULL. Quindi ordina prima in base ai valori NULL nell'ordine specificato e poi in base ad altri valori.

Se si seleziona , SSMA convertirà l'istruzione Oracle in modo da emulare il comportamento ORDER BY di Oracle.

Se si seleziona No, SSMA ignorerà le regole Oracle e genererà un messaggio di errore quando rileva le clausole NULLS FIRST e NULLS LAST.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No
Modalità estesa:
Emulare le eccezioni del conteggio delle righe in SELECT Se un'istruzione SELECT con una clausola INTO non restituisce righe, Oracle genera un'eccezione NO_DATA_FOUND. Se l'istruzione restituisce due o più righe, viene generata l'eccezione TOO_MANY_ROWS. L'istruzione convertita in SQL Server non genera alcuna eccezione se il conteggio delle righe è diverso da uno.

Se si seleziona , SSMA aggiunge una chiamata a una procedura speciale db_error_exact_one_row_check dopo ogni istruzione SELECT. Questa procedura emula le eccezioni NO_DATA_FOUND e TOO_MANY_ROWS. Si tratta dell'impostazione predefinita e consente di riprodurre il comportamento Oracle nel modo più fedele possibile. È sempre consigliabile scegliere se il codice sorgente include gestori di eccezioni che elaborano tali errori. Si noti che se l'istruzione SELECT si verifica all'interno di una funzione definita dall'utente, questo modulo verrà convertito in una stored procedure, perché l'esecuzione di stored procedure e la generazione di eccezioni non è compatibile con il contesto di funzione di SQL Server.

Se si seleziona No, non verranno generate eccezioni. Ciò può essere utile quando SSMA converte una funzione definita dall'utente e si vuole che questa \rimanga una funzione in SQL Server

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Abilitare Correzione guidata Se abilitata, SSMA tenterà di apprendere dalle modifiche apportate nel codice T-SQL di destinazione e di suggerire potenziali correzioni del codice in un'altra posizione, in cui è possibile applicare un modello simile.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Generare alias di colonna di espressioni costanti Se l'espressione nell'elenco SELECT non è dotata di un alias, SSMA può generare un alias costante (ad esempio expr1, expr2 e così via) o usare l'espressione stessa come alias. Poiché le espressioni possono essere piuttosto lunghe e la lunghezza del nome della colonna è limitata, è più sicuro usare il nome di base costante per tali alias. Pur trattandosi di un'opzione più sicura, a volte non è applicabile, perché potrebbero esserci relazioni esterne nel set di dati risultante. In questi casi è possibile assegnare un nome alle colonne in base alle relative espressioni valore, in modo analogo al comportamento di Oracle.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica:
Modalità estesa: No
Omettere proprietà estese Quando abilitata, SSMA non aggiungerà proprietà estese agli oggetti creati nel database di destinazione.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: No
Convertire i codici errore Quando abilitato, il numero errore sul lato SQL Server di destinazione verrà convertito nel codice errore Oracle se viene trovato il mapping.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/estesa:
Modalità ottimistica: No
Usare la specifica estesa del tipo per i riferimenti ai tipi Quando abilitata, SSMA rispetterà la specifica completa del tipo (inclusa la scala e la precisione) per i parametri di routine e i valori restituiti. Oracle non consente argomenti tipo di dati per i parametri di routine, ma esistono casi in cui essi possono essere derivati in modo implicito, ad esempio quando vengono usati gli attributi %TYPE e %ROWTYPE. In questi casi SSMA può usare la specifica estesa del tipo (inclusa precisione e scala) durante la conversione in SQL Server.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica:
Modalità estesa: No
Usare ISNULL nella concatenazione di stringhe Oracle e SQL Server restituiscono risultati diversi quando le concatenazioni di stringhe includono valori NULL. Oracle considera il valore NULLcome un set di caratteri vuoto. SQL Server restituisce NULL.

Se si seleziona , SSMA sostituisce il carattere di concatenamento di Oracle (||) con il carattere di concatenamento di SQL Server (+). Inoltre, SSMA controlla le espressioni su entrambi i lati del concatenamento per i valori NULL.

Se si seleziona No, SSMA sostituisce i caratteri di concatenamento, ma non verifica la presenza di valori NULL.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Conversione di oggetti

Termine Definizione
Convertire chiavi esterne con un'azione referenziale NULL SET nella colonna NON NULL Oracle consente di creare vincoli di chiave esterna, in cui non è possibile eseguire un'azione SET NULL perché non sono consentiti valori NULL nella colonna a cui si fa riferimento. SQL Server non consente la configurazione di tale chiave esterna.

Se si seleziona , SSMA genererà azioni referenziali come in Oracle, ma sarà necessario apportare modifiche manuali prima di caricare il vincolo in SQL Server. È ad esempio possibile scegliere NO ACTION invece di SET NULL.

Se si seleziona No, il vincolo verrà contrassegnato come errore.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: No
Convertire sottotipi SSMA può convertire i sottotipi PL/SQL in due modi:

Se si seleziona , SSMA creerà un tipo definito dall'utente (UDT) di SQL Server da un sottotipo e lo userà per ogni variabile di questo sottotipo.

Se si seleziona No, SSMA sostituirà tutte le dichiarazioni di origine del sottotipo con il tipo sottostante e convertirà il risultato come di consueto. In questo caso, non vengono creati tipi aggiuntivi in SQL Server

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: No
Convertire sinonimi È possibile eseguire la migrazione dei sinonimi per gli oggetti Oracle seguenti a SQL Server:

Tabelle e tabelle di oggetti

Viste e viste di oggetti

Stored procedure e funzioni

Viste materializzate

I sinonimi per gli oggetti seguenti possono essere 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 di altri sinonimi. SSMA genererà messaggi di errore per il sinonimo e per tutti i riferimenti che usano il sinonimo.

Se si seleziona , SSMA creerà sinonimi di SQL Server e riferimenti diretti agli oggetti in base agli elenchi precedenti.

Se si seleziona No, SSMA creerà riferimenti a oggetti diretti per tutti i sinonimi elencati qui.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Conversione dei moduli locali Definisce il tipo di conversione del sottoprogramma annidato di Oracle (dichiarato nella stored procedure o funzione indipendente).

Se si seleziona Inline, le chiamate al sottoprogramma annidato verranno sostituite dal relativo corpo.

Se si seleziona Stored procedure, il sottoprogramma annidato verrà convertito in una stored procedure di SQL Server e le relative chiamate verranno sostituite in questa chiamata di procedura.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: Inline

Conversione dei record

Termine Definizione
Convertire il record come elenco di variabili separate SSMA può convertire i record Oracle in variabili separate e in variabili XML con struttura specifica.

Se si seleziona , SSMA converte il record in un elenco di variabili separate quando possibile.

Se si seleziona No, SSMA converte il record in variabili XML con struttura specifica.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Usare SELECT (SELEZIONA)... PER XML durante la conversione di SELECT... IN per variabile record Specifica se generare un set di risultati XML quando si seleziona una variabile di record.

Se si seleziona , l'istruzione SELECT (SELEZIONA) restituisce XML.

Se si seleziona No, l'istruzione SELECT (SELEZIONA) restituisce un set di risultati.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: No

Conversione della clausola RETURNING (RESTITUZIONE)

Termine Definizione
Convertire la clausola RETURNING (RESTITUZIONE) nell'istruzione DELETE (ELIMINA) in OUTPUT Oracle fornisce una clausola RETURNING come modo per ottenere immediatamente i valori eliminati. SQL Server fornisce tale funzionalità con la clausola OUTPUT.

Se si seleziona , SSMA convertirà le clausole RETURNING nelle istruzioni DELETE in clausole OUTPUT. Poiché i trigger in una tabella possono modificare i valori, il valore restituito potrebbe essere diverso in SQL Server rispetto a quello in Oracle.

Se si seleziona No, SSMA genererà un'istruzione SELECT prima delle istruzioni DELETE per recuperare i valori restituiti.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Convertire la clausola RETURNING (RESTITUZIONE) nell'istruzione INSERT (INSERIRE) in OUTPUT Oracle fornisce una clausola RETURNING come modo per ottenere immediatamente i valori inseriti. SQL Server fornisce tale funzionalità con la clausola OUTPUT.

Se si seleziona , SSMA convertirà una clausola RETURNING in una istruzione INSERT in OUTPUT. Poiché i trigger in una tabella possono modificare i valori, il valore restituito potrebbe essere diverso in SQL Server rispetto a quello in Oracle.

Se si seleziona No, SSMA emula la funzionalità Oracle inserendo e quindi selezionando i valori da una tabella di riferimento.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Convertire la clausola RETURNING (RESTITUZIONE) nell'istruzione UPDATE (AGGIORNARE) in OUTPUT Oracle fornisce una clausola RETURNING come modo per ottenere immediatamente i valori aggiornati. SQL Server fornisce tale funzionalità con la clausola OUTPUT.

Se si seleziona , SSMA convertirà le clausole RETURNING nelle istruzioni UPDATE in clausole OUTPUT. Poiché i trigger in una tabella possono modificare i valori, il valore restituito potrebbe essere diverso in SQL Server rispetto a quello in Oracle.

Se si seleziona No, SSMA genererà istruzioni SELECT (SELEZIONA) dopo le istruzioni UPDATE per recuperare i valori restituiti.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Generazione ROWID

Termine Definizione
Generare colonne ROWID Quando SSMA crea tabelle in SQL Server, può creare una colonna ROWID. Quando si esegue la migrazione dei dati, ogni riga ottiene un nuovo valore UNIQUEIDENTIFIER generato dalla funzione newid().

Se si seleziona , la colonna ROWID viene creata in tutte le tabelle e SQL Server genera GUID come valori di inserimento. Scegliere sempre se si prevede di usare il tester SSMA.

Se si seleziona No, le colonne ROWID non vengono aggiunte alle tabelle.

Aggiungere la colonna ROWID per le tabelle con trigger aggiungono ROWID per le tabelle che contengono dei trigger.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: aggiungere la colonna ROWID per le tabelle con trigger

Modalità estesa:
Generare un indice univoco nella colonna ROWID Specifica se SSMA genera o meno una colonna di indice univoca nella colonna ROWID generata. Se l'opzione è impostata su "SÌ", viene generato un indice univoco, mentre se è impostato su "NO" l'indice univoco non viene generato nella colonna ROWID.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Conversione di sequenza e identità

Termine Definizione
Convertire l'identità come Oracle offre più opzioni di configurazione per le colonne Identity. Alcune di queste opzioni non sono supportate dalla funzionalità identity in SQL Server.

Un metodo per conservare tali opzioni consiste nel convertire l'identità come sequenza.

Se si seleziona Sequenza, le colonne Identity di Oracle non verranno più convertite in colonne Identity di SQL. Sarà invece creata e utilizzata una sequenza per generare valori predefiniti per la colonna.

Se si seleziona Identità, le colonne Identity di Oracle verranno convertite in colonne Identity di SQL. Le opzioni non supportate non verranno convertite.

Se si seleziona Best Fit (Migliore adattabilità), SSMA determinerà il metodo di conversione più adatto (Identità o Sequenza) a seconda della configurazione della colonna Identity di Oracle.
Convertire il generatore di sequenza In Oracle è possibile usare una sequenza per generare identificatori univoci.

SSMA può convertire le sequenze in quanto segue.

Uso del generatore di sequenze di SQL Server.

Uso del generatore di sequenze di SSMA.

Uso dell'identità della colonna.

L'opzione predefinita consiste nell'usare il generatore di sequenze di SQL Server. SQL Server, tuttavia, non supporta l'acquisizione del valore della sequenza corrente, ad esempio quello del metodo di sequenza CURRVAL di Oracle. Per indicazioni sulla migrazione del metodo di sequenza CURRVAL di Oracle, vedere il sito di blog del team di SSMA.

SSMA offre inoltre un'opzione per convertire la sequenza di Oracle nell'emulatore di sequenza di SSMA. Questa è l'opzione predefinita quando si esegue la conversione in SQL Server prima del 2012

Infine, è inoltre possibile convertire la sequenza assegnata a una colonna nella tabella in valori identità di SQL Server. È necessario specificare il mapping tra le sequenze per una colonna identity nella scheda Tabella di Oracle
Convertire CURRVAL all'esterno di trigger Visibile solo quando Convertire generatore di sequenza è impostato su Uso della colonna dell'identità. Poiché le sequenze Oracle sono oggetti separati dalle tabelle, molte tabelle che usano sequenze usano un trigger per generare e inserire un nuovo valore di sequenza. SSMA imposta queste istruzioni come commenti oppure le contrassegna come errori quando i commenti sarebbero fonti di errori.

Se si seleziona , SSMA contrassegnerà tutti i riferimenti a trigger esterni nella sequenza CURRVAL convertita con un avviso.

Se si seleziona No, SSMA contrassegnerà tutti i riferimenti a trigger esterni nella sequenza CURRVAL convertita con un errore.

Conversione di istruzioni

Termine Definizione
Conversione dell'istruzione MERGE (UNIRE) Se si seleziona Usare istruzioni INSERT (INSERIRE), UPDATE (AGGIORNARE), DELETE (ANNULLARE), SSMA converte l'istruzione MERGE in istruzioni INSERT, UPDATE, DELETE.

Se si seleziona Usare l'istruzione MERGE (UNIRE), SSMA converte l'istruzione MERGE nell’istruzione MERGEin SQL Server.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Impostazione predefinita/ottimistica/estesa: usare l'istruzione MERGE (UNIRE)
Convertire le chiamate in sottoprogrammi che usano argomenti predefiniti Le funzioni di SQL Server non supportano l'omissione di parametri nella chiamata di funzione. Inoltre, le funzioni e le procedure di SQL Server non supportano le espressioni come valori di parametro predefiniti.

Se si seleziona e una chiamata di funzione omette i parametri, SSMA inserirà la parola chiave predefinita nella funzione ed effettuerà la chiamata nella posizione corretta. Contrassegnerà quindi la chiamata con un avviso.

Se si seleziona No, SSMA contrassegnerà le chiamate di funzione come errori.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Convertire l'istruzione FORALL nell'istruzione WHILE Definisce il modo in cui SSMA tratterà i cicli FORALL sugli elementi della raccolta PL/SQL.

Se si seleziona , SSMA crea un ciclo WHILE in cui gli elementi della raccolta vengono recuperati uno alla volta.

Se si seleziona No, SSMA genera un set di righe dalla raccolta usando il metodo nodes() e lo usa come singola tabella. Questa operazione è più efficiente, ma rende il codice di output meno leggibile.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No
Modalità estesa:
Convertire le chiamate di funzione in chiamate di procedura Alcune funzioni Oracle sono definite come transazioni autonome o contengono istruzioni che non sarebbero valide in SQL Server. In questi casi, SSMA crea una procedura e una funzione che è un wrapper per la procedura. La chiamata di funzione convertita chiama la procedura di implementazione.

SSMA può convertire le chiamate alla funzione wrapper in chiamate alla procedura. Ciò dà vita a un codice più leggibile e può migliorare le prestazioni. Tuttavia, il contesto non lo consente sempre; ad esempio, non è possibile sostituire una chiamata di funzione nell'elenco SELECT con una chiamata di procedura. SSMA offre alcune opzioni per gestire i casi più comuni:

Se si seleziona Sempre, SSMA tenta di convertire le chiamate di funzione wrapper in chiamate di procedura. Se il contesto corrente non consente questa conversione, viene generato un messaggio di errore. In questo modo, nel codice generato non vengono lasciate chiamate di funzione.

Se si seleziona Quando possibile, SSMA esegue uno spostamento alle chiamate di procedura solo se la funzione dispone di parametri di output. Quando lo spostamento non è possibile, l'attributo di output del parametro viene rimosso. In tutti gli altri casi SSMA lascia le chiamate di funzione.

Se si seleziona Mai, SSMA lascerà tutte le chiamate di funzione come chiamate di funzione. A volte questa scelta può essere inaccettabile per motivi di prestazioni.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: quando possibile
Convertire istruzioni LOCK TABLE SSMA può convertire molte istruzioni LOCK TABLE in hint di tabella. SSMA non può convertire istruzioni LOCK TABLE che contengono clausole PARTITION, SUBPARTITION,@dblink e NOWAIT e contrassegnerà tali istruzioni con messaggi di errore di conversione.

Se si seleziona , SSMA convertirà le istruzioni LOCK TABLE supportate in hint di tabella.

Se si seleziona No, SSMA contrassegnerà tutte le istruzioni LOCK TABLEcon messaggi di errore di conversione.

La tabella seguente illustra come SSMA converte le modalità di blocco Oracle:

Modalità di blocco Oracle

ROW SHARE
ROW EXCLUSIVE
SHARE UPDATE = ROW SHARE
SHARE
SHARE
EXCLUSIVE

Hint della tabella di SQL Server

ROWLOCK, HOLDLOCK
ROWLOCK, XLOCK, HOLDLOCK
ROWLOCK, HOLDLOCK
TABLOCK, HOLDLOCK
TABLOCK, XLOCK, HOLDLOCK
TABLOCKX, HOLDLOCK

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Convertire istruzioni OPEN-FOR per i parametri REF CURSOR OUT In Oracle l'istruzione OPEN .. FOR può essere utilizzata per restituire un set di risultati al parametro OUT di un sottoprogramma di tipo REF CURSOR. In SQL Server le stored procedure restituiscono direttamente i risultati delle istruzioni SELECT.

SSMA può convertire molte istruzioni OPEN .. FOR in istruzioni SELECT.

Se si seleziona , SSMA converte l'istruzione OPEN .. FOR in un'istruzione SELECT, che restituisce il set di risultati al client.

Se si seleziona No, SSMA genererà un messaggio di errore nel codice convertito e nel riquadro Output.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:
Convertire le istruzioni di elaborazione delle transazioni SSMA può convertire le istruzioni di elaborazione delle transazioni di Oracle:

Se si seleziona , SSMA converte le istruzioni di elaborazione delle transazioni di Oracle in istruzioni di SQL Server.

Se si seleziona No, SSMA contrassegna le istruzioni di elaborazione delle transazioni come errori di conversione.

Nota: Oracle apre le transazioni in modo implicito. Per emulare questo comportamento in SQL Server, è necessario aggiungere BEGIN TRANSACTION manualmente istruzioni in cui si desidera avviare le transazioni. In alternativa, è possibile eseguire il comando SET IMPLICIT_TRANSACTIONS ON all'inizio della sessione. SSMA aggiunge SET IMPLICIT_TRANSACTIONS ON automaticamente durante la conversione di subroutine con transazioni autonome.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Vedi anche

Guida di riferimento all'interfaccia utente (OracleToSQL)