

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Connessione ai database Oracle con AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle"></a>

È possibile utilizzare AWS SCT per convertire schemi, oggetti di codice del database e codice dell'applicazione da Oracle Database ai seguenti obiettivi: 
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition
+ Amazon RDS per Oracle
+ Amazon RDS per MariaDB

Quando l'origine è un database Oracle, i commenti possono essere convertiti nel formato appropriato, ad esempio, in un database PostgreSQL. AWS SCT può convertire commenti su tabelle, viste e colonne. I commenti possono includere apostrofi; AWS SCT raddoppia gli apostrofi durante la conversione delle istruzioni SQL, proprio come avviene per le stringhe letterali.

Per ulteriori informazioni, consulta gli argomenti seguenti.

**Topics**
+ [Privilegi per Oracle come origine](#CHAP_Source.Oracle.Permissions)
+ [Connessione a Oracle come fonte](#CHAP_Source.Oracle.Connecting)
+ [Migrazione da Oracle ad Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL con AWS Schema Conversion Tool](CHAP_Source.Oracle.ToPostgreSQL.md)
+ [Migrazione da Oracle ad Amazon RDS for MySQL o Amazon Aurora MySQL con AWS Schema Conversion Tool](CHAP_Source.Oracle.ToMySQL.md)
+ [Migrazione da Oracle Database ad Amazon RDS for Oracle con AWS Schema Conversion Tool](CHAP_Source.Oracle.ToRDSOracle.md)

## Privilegi per Oracle come origine
<a name="CHAP_Source.Oracle.Permissions"></a>

I privilegi richiesti per Oracle come fonte sono i seguenti: 
+ CONNECT 
+ SELECT\$1CATALOG\$1ROLE 
+ SELECT ANY DICTIONARY 
+ SELECT ON SYS.ARGUMENT\$1

## Connessione a Oracle come fonte
<a name="CHAP_Source.Oracle.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine Oracle con AWS Schema Conversion Tool. 

**Per connetterti a un database di origine Oracle**

1. In AWS Schema Conversion Tool, scegli **Aggiungi fonte**. 

1. Scegli **Oracle**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Secret**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database di origine Oracle, utilizzare le seguenti istruzioni:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

1. Scegliete **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

# Migrazione da Oracle ad Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL con AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToPostgreSQL"></a>

Quando converti un database Oracle in RDS per PostgreSQL o Amazon Aurora PostgreSQL, tieni presente quanto segue.

**Topics**
+ [Privilegi per PostgreSQL come database di destinazione](#CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget)
+ [Impostazioni di conversione da Oracle a PostgreSQL](#CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings)
+ [Conversione di sequenze Oracle](#CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences)
+ [Conversione di ROWID Oracle](#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID)
+ [Conversione di Oracle Dynamic SQL](#CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL)
+ [Conversione di partizioni Oracle](#CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning)

Durante la conversione di oggetti di sistema Oracle in PostgreSQL AWS SCT , esegue le conversioni come illustrato nella tabella seguente.


| Oggetto di sistema Oracle | Description | Oggetto PostgreSQL convertito | 
| --- | --- | --- | 
| V\$1VERSION  | Visualizza i numeri di versione dei componenti principali della libreria nel database Oracle | aws\$1oracle\$1ext.v\$1version | 
| V\$1INSTANCE | Vista che mostra lo stato dell'istanza corrente. | aws\$1oracle\$1ext.v\$1instance | 

È possibile utilizzare AWS SCT per convertire i file Oracle SQL\$1Plus in psql, che è un front-end basato su terminale per PostgreSQL. Per ulteriori informazioni, consulta [Conversione del codice SQL dell'applicazione utilizzando AWS SCT](CHAP_Converting.App.md).

## Privilegi per PostgreSQL come database di destinazione
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget"></a>

Per utilizzare PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `CREATE ON DATABASE` Assicurati di concedere questo privilegio per ogni database PostgreSQL di destinazione.

Per utilizzare i sinonimi pubblici convertiti, modifica il percorso di ricerca predefinito del database in. `"$user", public_synonyms, public`

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *db\$1name* sostituiscilo con il nome del database di destinazione. Infine, *your\$1password* sostituiscilo con una password sicura.

Per utilizzare Amazon RDS for PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `rds_superuser`

In PostgreSQL, solo il proprietario di uno schema o un `superuser` può rilasciare uno schema. Il proprietario può eliminare uno schema e tutti gli oggetti che lo schema include anche se il proprietario dello schema non possiede alcuni dei suoi oggetti.

Quando utilizzi utenti diversi per convertire e applicare schemi diversi al database di destinazione, puoi ricevere un messaggio di errore quando non AWS SCT puoi eliminare uno schema. Per evitare questo messaggio di errore, utilizza il ruolo `superuser`. 

## Impostazioni di conversione da Oracle a PostgreSQL
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da Oracle a PostgreSQL, scegli Impostazioni AWS SCT in, quindi **scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — PostgreSQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da Oracle a PostgreSQL.

Le impostazioni di conversione da Oracle a PostgreSQL includono le seguenti opzioni AWS SCT :
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+  AWS SCT Per consentire la conversione delle viste materializzate Oracle in tabelle o viste materializzate su PostgreSQL. Per la **conversione delle viste materializzate as, scegli come convertire le viste** materializzate di origine.
+ Per lavorare con il codice sorgente Oracle quando include e `TO_NUMBER` funzioni con parametri non supportati da PostgreSQL. `TO_CHAR` `TO_DATE` Per impostazione predefinita, AWS SCT emula l'utilizzo di questi parametri nel codice convertito.

  Se il codice sorgente Oracle include solo parametri supportati da PostgreSQL, è possibile utilizzare `TO_CHAR` PostgreSQL e funzioni native. `TO_DATE` `TO_NUMBER` In questo caso, il codice convertito funziona più velocemente. Per includere solo questi parametri, seleziona i seguenti valori:
  + **La funzione TO\$1CHAR () non utilizza stringhe di formattazione specifiche di Oracle**
  + **La funzione TO\$1DATE () non utilizza stringhe di formattazione specifiche di Oracle**
  + **La funzione TO\$1NUMBER () non utilizza stringhe di formattazione specifiche di Oracle**
+ Per risolvere i casi in cui il database Oracle di origine memorizza solo valori interi nelle colonne a chiave primaria o esterna del tipo di `NUMBER` dati, è AWS SCT possibile convertire queste colonne nel tipo di dati. `BIGINT` Questo approccio migliora le prestazioni del codice convertito. Per adottare questo approccio, seleziona **Converti le colonne NUMBER primarie/chiave esterna in colonne BIGINT**. Assicurati che l'origine non includa valori con virgola mobile in queste colonne per evitare la perdita di dati.
+ Per saltare i trigger e i vincoli disattivati nel codice sorgente. Per farlo, scegli **Ignora i trigger e i vincoli disabilitati**.
+ Da utilizzare AWS SCT per convertire variabili di stringa chiamate SQL dinamico. Il codice del database può modificare i valori di queste variabili di stringa. Per assicurarti che converta AWS SCT sempre il valore più recente di questa variabile di stringa, seleziona **Converti il codice SQL dinamico creato nelle cosiddette routine**.
+ Per risolvere questo problema, PostgreSQL versione 10 e precedenti non supportano le procedure. Se tu o i tuoi utenti non avete familiarità con l'uso delle procedure in PostgreSQL AWS SCT , potete convertire le procedure Oracle in funzioni PostgreSQL. A tale scopo, seleziona **Converti procedure in funzioni**.
+ Per visualizzare informazioni aggiuntive sulle azioni eseguite. A tale scopo, puoi aggiungere funzioni specifiche al pacchetto di estensione selezionando **Add on exception raise block per problemi di migrazione con i livelli di gravità successivi**. Quindi scegli i livelli di gravità per generare le eccezioni definite dall'utente.
+ Per lavorare con un database Oracle di origine che potrebbe includere vincoli con i nomi generati automaticamente. Se il codice sorgente utilizza questi nomi, assicuratevi di selezionare **Converti i nomi dei vincoli generati dal sistema utilizzando i nomi originali** di origine. Se il codice sorgente utilizza questi vincoli ma non ne utilizza i nomi, deselezionate questa opzione per aumentare la velocità di conversione.
+ Per stabilire se il database e le applicazioni funzionano in fusi orari diversi. Per impostazione predefinita, AWS SCT emula i fusi orari nel codice convertito. Tuttavia, non è necessaria questa emulazione quando il database e le applicazioni utilizzano lo stesso fuso orario. In questo caso, la selezione **Fuso orario sul lato client corrisponde al fuso orario sul server**.
+ Per stabilire se i database di origine e di destinazione funzionano in fusi orari diversi. In caso affermativo, la funzione che emula la funzione Oracle `SYSDATE` integrata restituisce valori diversi rispetto alla funzione di origine. Per assicurarti che le funzioni di origine e di destinazione restituiscano gli stessi valori, scegli **Imposta il fuso orario predefinito per l'emulazione SYSDATE**.
+ Per utilizzare le funzioni dell'estensione orafce nel codice convertito. A tale scopo, in **Usa l'implementazione di orafce**, seleziona le funzioni da usare. [Per ulteriori informazioni su orafce, vedere orafce on.](https://github.com/orafce/orafce) GitHub

## Conversione di sequenze Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences"></a>

AWS SCT converte le sequenze da Oracle a PostgreSQL. Se utilizzate sequenze per mantenere i vincoli di integrità, assicuratevi che i nuovi valori di una sequenza migrata non si sovrappongano ai valori esistenti.

**Per popolare le sequenze convertite con l'ultimo valore del database di origine**

1. Apri il tuo AWS SCT progetto con Oracle come sorgente.

1. Scegli **Impostazioni**, quindi scegli **Impostazioni di conversione**. 

1. Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — PostgreSQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da Oracle a PostgreSQL. 

1. Scegli **Popola le sequenze convertite con l'ultimo valore generato** sul lato sorgente.

1. Scegliete **OK** per salvare le impostazioni e chiudere la finestra di dialogo **delle impostazioni di conversione**. 

## Conversione di ROWID Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID"></a>

 In un database Oracle, la pseudocolonna ROWID contiene l'indirizzo della riga di tabella. La pseudocolonna ROWID è unica per Oracle, quindi AWS SCT converte la pseudocolonna ROWID in una colonna di dati su PostgreSQL. Utilizzando questa conversione, è possibile conservare le informazioni ROWID. 

Durante la conversione della pseudocolonna ROWID, AWS SCT può creare una colonna di dati con il tipo di dati. `bigint` Se non esiste una chiave primaria, AWS SCT imposta la colonna ROWID come chiave primaria. Se esiste una chiave primaria, AWS SCT imposta la colonna ROWID con un vincolo univoco.

Se il codice del database sorgente include operazioni con ROWID, che non possono essere eseguite utilizzando un tipo di dati numerico, AWS SCT puoi creare una colonna di dati con il tipo di dati. `character varying`

**Per creare una colonna di dati per ROWID Oracle per un progetto**

1. Apri il tuo AWS SCT progetto con Oracle come sorgente.

1. Scegli **Impostazioni**, quindi scegli **Impostazioni di conversione**. 

1. Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — PostgreSQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da Oracle a PostgreSQL. 

1. Per **Genera ID di riga**, esegui una delle seguenti operazioni: 
   + Scegliete **Genera come identità** per creare una colonna di dati numerici.
   + Scegli **Genera come tipo di dominio di caratteri** per creare una colonna di dati di caratteri.

1. Scegliete **OK** per salvare le impostazioni e chiudere la finestra di dialogo **delle impostazioni di conversione**. 

## Conversione di Oracle Dynamic SQL
<a name="CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL"></a>

 Oracle offre due modi per implementare l'SQL dinamico: utilizzando un'istruzione EXECUTE IMMEDIATE o chiamando le procedure nel pacchetto DBMS\$1SQL. Se il database Oracle di origine include oggetti con SQL dinamico, utilizzalo AWS SCT per convertire le istruzioni SQL dinamiche Oracle in PostgreSQL.

**Per convertire Oracle dynamic SQL in PostgreSQL**

1. Apri il tuo AWS SCT progetto usando Oracle come sorgente.

1. Scegli un oggetto di database che utilizzi SQL dinamico nella visualizzazione ad albero dei sorgenti di Oracle.

1. Apri il menu contestuale (fai clic con il pulsante destro del mouse) per l'oggetto, scegli **Converti schema** e accetta di sostituire gli oggetti se esistono. La schermata seguente mostra la procedura convertita al di sotto della procedura Oracle con SQL dinamico.  
![\[Conversione Dynamic SQL\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/images/dynamicsql1.png)

## Conversione di partizioni Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning"></a>

AWS SCT attualmente supporta i seguenti metodi di partizionamento: 
+ Intervallo
+ List
+ Intervallo a più colonne
+ Hash
+ Composito (lista-lista, lista-lista, lista-intervallo, lista-hash, range-hash, hash-hash)

# Migrazione da Oracle ad Amazon RDS for MySQL o Amazon Aurora MySQL con AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToMySQL"></a>

Per emulare le funzioni del database Oracle nel codice MySQL convertito, usa il pacchetto di estensione Oracle to MySQL in. AWS SCT Per ulteriori informazioni sui pacchetti di estensione, consulta [Utilizzo dei pacchetti di estensione con AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Privilegi per MySQL come database di destinazione](#CHAP_Source.Oracle.ToMySQL.ConfigureTarget)
+ [Impostazioni di conversione da Oracle a MySQL](#CHAP_Source.Oracle.ToMySQL.ConversionSettings)
+ [Considerazioni sulla migrazione](#CHAP_Source.Oracle.ToMySQL.MigrationConsiderations)
+ [Conversione dell'istruzione WITH in Oracle in RDS per MySQL o Amazon Aurora MySQL](#CHAP_Source.Oracle.ToMySQL.With)

## Privilegi per MySQL come database di destinazione
<a name="CHAP_Source.Oracle.ToMySQL.ConfigureTarget"></a>

I privilegi richiesti per MySQL come destinazione sono i seguenti:
+ CREA SU\$1 . \$1
+ PIÙ TARDI \$1 . \$1
+ SCENDI SU \$1 . \$1
+ INDICE SU\$1 . \$1
+ RIFERIMENTI SU\$1 . \$1
+ SELECT ON \$1.\$1
+ CREA UNA VISTA SU\$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ GRILLETTO SU \$1 . \$1
+ CREA ROUTINE SU\$1 . \$1
+ MODIFICA LA ROUTINE SU \$1 . \$1
+ ESEGUI SU\$1 . \$1
+ CREARE TABELLE TEMPORANEE SU\$1 . \$1
+ AWS\$1LAMBDA\$1ACCESSO
+ INSERISCI, AGGIORNA SU AWS\$1ORACLE \$1EXT. \$1
+ INSERISCI, AGGIORNA, ELIMINA SU AWS\$1ORACLE \$1EXT\$1DATA. \$1

Se utilizzi un database MySQL versione 5.7 o precedente come destinazione, concedi l'autorizzazione INVOKE LAMBDA \$1.\$1 anziché \$1ACCESS. AWS\$1LAMBDA Per i database MySQL versione 8.0 e successive, concedi l'autorizzazione. AWS\$1LAMBDA\$1ACCESS 

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON *.* TO 'user_name';
GRANT AWS_LAMBDA_ACCESS TO 'user_name';
GRANT INSERT, UPDATE ON AWS_ORACLE_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_ORACLE_EXT_DATA.* TO 'user_name';
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome del tuo utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

Se utilizzi un database MySQL versione 5.7 o precedente come destinazione, usa invece di. `GRANT INVOKE LAMBDA ON *.* TO 'user_name'` `GRANT AWS_LAMBDA_ACCESS TO 'user_name'`

Per utilizzare Amazon RDS per MySQL o Aurora MySQL come destinazione, imposta il parametro `lower_case_table_names` su `1`. Questo valore indica che il server MySQL gestisce gli identificatori di nomi di oggetti come tabelle, indici, trigger e database senza distinzione tra maiuscole e minuscole. Se hai attivato la registrazione binaria nell'istanza di destinazione, imposta il parametro `log_bin_trust_function_creators` su `1`. In questo caso, non è necessario utilizzare le caratteristiche `DETERMINISTIC`, `READS SQL DATA` o `NO SQL` per creare funzioni archiviate. Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

## Impostazioni di conversione da Oracle a MySQL
<a name="CHAP_Source.Oracle.ToMySQL.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da Oracle a MySQL, **scegli Impostazioni AWS SCT in, quindi scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — MySQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da Oracle a MySQL.

Le impostazioni di conversione da Oracle AWS SCT a MySQL includono le seguenti opzioni:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per risolvere questo problema, il database Oracle di origine può utilizzare la `ROWID` pseudocolonna, ma MySQL non supporta funzionalità simili. AWS SCT può emulare la pseudocolonna nel `ROWID` codice convertito. **Per fare ciò, scegli **Genera come identità per Genera ID** di riga?** .

  Se il codice sorgente Oracle non utilizza la `ROWID` pseudocolonna, scegli **Non generare per **generare**** l'ID di riga? In questo caso, il codice convertito funziona più velocemente.
+ Per lavorare con il codice sorgente Oracle quando include e `TO_NUMBER` funzioni con parametri che MySQL non supporta. `TO_CHAR` `TO_DATE` Per impostazione predefinita, AWS SCT emula l'utilizzo di questi parametri nel codice convertito.

  Quando il codice sorgente Oracle include solo parametri supportati da PostgreSQL, è possibile utilizzare MySQL e funzioni native. `TO_CHAR` `TO_DATE` `TO_NUMBER` In questo caso, il codice convertito funziona più velocemente. Per includere solo questi parametri, seleziona i seguenti valori:
  + **La funzione TO\$1CHAR () non utilizza stringhe di formattazione specifiche di Oracle**
  + **La funzione TO\$1DATE () non utilizza stringhe di formattazione specifiche di Oracle**
  + **La funzione TO\$1NUMBER () non utilizza stringhe di formattazione specifiche di Oracle**
+ Per stabilire se il database e le applicazioni vengono eseguiti in fusi orari diversi. Per impostazione predefinita, AWS SCT emula i fusi orari nel codice convertito. Tuttavia, non è necessaria questa emulazione quando il database e le applicazioni utilizzano lo stesso fuso orario. In questo caso, la selezione **Fuso orario sul lato client corrisponde al fuso orario sul server**.

## Considerazioni sulla migrazione
<a name="CHAP_Source.Oracle.ToMySQL.MigrationConsiderations"></a>

Quando converti Oracle in RDS for MySQL o Aurora MySQL, per modificare l'ordine di esecuzione delle istruzioni, puoi utilizzare un'istruzione e un'etichetta. `GOTO` Tutte le istruzioni PL/SQL che seguono un'`GOTO`istruzione vengono ignorate e l'elaborazione continua dall'etichetta. È possibile utilizzare `GOTO` istruzioni ed etichette ovunque all'interno di una procedura, di un batch o di un blocco di istruzioni. Puoi anche aggiungere istruzioni GOTO.

MySQL non utilizza istruzioni. `GOTO` Quando AWS SCT converte il codice che contiene un'`GOTO`istruzione, converte l'istruzione in modo che utilizzi un'istruzione or. `BEGIN…END` `LOOP…END LOOP` 

È possibile trovare esempi di come AWS SCT converte `GOTO` le istruzioni nella tabella seguente.


| Istruzione Oracle | Istruzione MySQL | 
| --- | --- | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   GOTO label1;<br />   statement2;<br />   ....<br />   label1:<br />   Statement3;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br /> label1:<br /> BEGIN<br />   ....<br />   statement1;<br />   ....<br />   LEAVE label1;<br />   statement2;<br />   ....<br /> END;<br />   Statement3;<br />   ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   GOTO label1;<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   LOOP<br />    statement2;<br />    ....<br />    ITERATE label1;<br />    LEAVE label1;<br />   END LOOP; <br />    statement3;<br />    ....<br />    statement4;<br />    ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   BEGIN<br />    statement2;<br />    ....    <br />    statement3;<br />    ....<br />    statement4;<br />    ....    <br />   END; <br />END<br /></pre>  | 

## Conversione dell'istruzione WITH in Oracle in RDS per MySQL o Amazon Aurora MySQL
<a name="CHAP_Source.Oracle.ToMySQL.With"></a>

È possibile utilizzare la clausola WITH (subquery\$1factoring) in Oracle per assegnare un nome (query\$1name) a un blocco di sottoquery. È quindi possibile fare riferimento al blocco di sottoquery in più posizioni nella query specificando il query\$1name. Se un blocco di subquery non contiene collegamenti o parametri (locali, procedure, funzioni, pacchetti), AWS SCT converte la clausola in una vista o in una tabella temporanea. 

Il vantaggio di convertire la clausola in una tabella temporanea è che i riferimenti ripetuti alla sottoquery potrebbero essere più efficienti. La maggiore efficienza è dovuta al fatto che i dati vengono facilmente recuperati dalla tabella temporanea piuttosto che essere richiesti da ogni riferimento. È possibile emularlo utilizzando viste aggiuntive o una tabella temporanea. Il nome della visualizzazione utilizza il formato `<procedure_name>$<subselect_alias>`.

È possibile trovare esempi nella tabella seguente. 


| Istruzione Oracle | Istruzione MySQL | 
| --- | --- | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_VARIABLE_01<br />     (p_state IN NUMBER)<br />AS<br />  l_dept_id NUMBER := 1; <br />BEGIN<br />FOR cur IN  <br />           (WITH dept_empl(id, name, surname, <br />              lastname, state, dept_id)<br />              AS<br />                  (<br />                    SELECT id, name, surname,  <br />                     lastname, state, dept_id <br />                      FROM test_ora_pg.dept_employees<br />                     WHERE state = p_state AND <br />                       dept_id = l_dept_id)<br />            SELECT id,state   <br />              FROM dept_empl<br />            ORDER BY id)  LOOP<br />  NULL;<br />END LOOP;<br /></pre>  |  <pre>CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_VARIABLE_01(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 1;<br />    DECLARE var$id VARCHAR (8000);<br />    DECLARE var$state VARCHAR (8000);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        ID, STATE<br />        FROM (SELECT<br />            ID, NAME, SURNAME, LASTNAME, STATE, DEPT_ID<br />            FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />            WHERE STATE = par_p_state AND DEPT_ID = var_l_dept_id) AS dept_empl<br />        ORDER BY ID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$id, var$state;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_REGULAR_MULT_01<br />AS    <br />BEGIN<br /><br /> FOR cur IN  (<br />               WITH dept_empl AS<br />                   (<br />                        SELECT id, name, surname, <br />                         lastname, state, dept_id <br />                          FROM test_ora_pg.dept_employees<br />                         WHERE state = 1),<br />                    dept AS <br />                   (SELECT id deptid, parent_id, <br />                      name deptname<br />                      FROM test_ora_pg.department                <br />                   )<br />                SELECT dept_empl.*,dept.*          <br />                 FROM dept_empl, dept<br />                 WHERE dept_empl.dept_id = dept.deptid<br />              ) LOOP<br />              NULL;<br />            END LOOP;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br /> `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT id, name, surname, lastname, state, dept_id <br />   FROM test_ora_pg.dept_employees<br />  WHERE state = 1);<br />  <br />CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br /> `(deptid, parent_id,deptname)<br />AS<br />(SELECT id deptid, parent_id, name deptname<br />   FROM test_ora_pg.department);  <br /><br /><br />CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br />BEGIN<br />    DECLARE var$ID DOUBLE;<br />    DECLARE var$NAME VARCHAR (30);<br />    DECLARE var$SURNAME VARCHAR (30);<br />    DECLARE var$LASTNAME VARCHAR (30);<br />    DECLARE var$STATE DOUBLE;<br />    DECLARE var$DEPT_ID DOUBLE;<br />    DECLARE var$deptid DOUBLE;<br />    DECLARE var$PARENT_ID DOUBLE;<br />    DECLARE var$deptname VARCHAR (200);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        dept_empl.*, dept.*<br />        FROM TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br />          ` AS dept_empl,<br />             TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br />          ` AS dept<br />        WHERE dept_empl.DEPT_ID = dept.DEPTID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />    FETCH cur INTO var$ID, var$NAME, var$SURNAME, <br />     var$LASTNAME, var$STATE, var$DEPT_ID, var$deptid, <br />     var$PARENT_ID, var$deptname;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /><br />call test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br />  TEST_ORA_PG.P_WITH_SELECT_VAR_CROSS_02(p_state IN NUMBER)<br />AS    <br />   l_dept_id NUMBER := 10;<br />BEGIN<br /> FOR cur IN  (<br />               WITH emp AS              <br />                    (SELECT id, name, surname, <br />                      lastname, state, dept_id <br />                       FROM test_ora_pg.dept_employees<br />                      WHERE dept_id > 10                 <br />                    ),<br />                    active_emp AS<br />                    (<br />                      SELECT id<br />                        FROM emp<br />                       WHERE emp.state = p_state <br />                    )<br />                    <br />                SELECT *          <br />                  FROM active_emp                 <br />              ) LOOP<br />         NULL;<br />  END LOOP;<br />  <br />END;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_VAR_CROSS_01$emp<br />    `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT<br />       id, name, surname, lastname, <br />       state, dept_id<br />  FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />  WHERE DEPT_ID > 10);<br /><br /><br />CREATE PROCEDURE <br />   test_ora_pg.P_WITH_SELECT_VAR_CROSS_02(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 10;<br />    DECLARE var$ID DOUBLE;<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT *<br />                             FROM (SELECT<br />                                      ID<br />                                     FROM <br />                             TEST_ORA_PG.<br />                              `P_WITH_SELECT_VAR_CROSS_01$emp` AS emp<br />                                   WHERE emp.STATE = par_p_state) <br />                                    AS active_emp;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$ID;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 

# Migrazione da Oracle Database ad Amazon RDS for Oracle con AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Alcuni aspetti da considerare durante la migrazione dello schema e del codice Oracle ad Amazon RDS per Oracle: 
+ AWS SCT può aggiungere oggetti di directory all'albero degli oggetti. *Gli oggetti directory* sono strutture logiche che rappresentano ciascuna una directory fisica sul file system del server. È possibile utilizzare gli oggetti di directory con pacchetti come DBMS\$1LOB, UTL\$1FILE, DBMS\$1FILE\$1TRANSFER, la utility DATAPUMP e così via.
+ AWS SCT supporta la conversione di tablespace Oracle in un'istanza database Amazon RDS for Oracle. Oracle memorizza i dati logicamente in spazi tabelle e fisicamente in file di dati associati allo spazio tabella corrispondente. In Oracle è possibile creare spazi tabella con i nomi dei file di dati. Amazon RDS supporta Oracle Managed Files (OMF) solo per file di dati, file di log e file di controllo. AWS SCT crea i file di dati necessari durante la conversione.
+ AWS SCT può convertire ruoli e privilegi a livello di server. Il motore di database Oracle utilizza la protezione basata sui ruoli. Un ruolo è una raccolta di privilegi che è possibile concedere o revocare a un utente. Un ruolo predefinito in Amazon RDS, denominato DBA, normalmente consente tutti i privilegi di amministrazione a un motore di database Oracle. I seguenti privilegi non sono disponibili per il ruolo DBA su un'istanza database di Amazon RDS utilizzando il motore Oracle:
  + Alter di database
  + Alter system
  + Creazione di una directory
  + Concessione di qualsiasi privilegio
  + Concessione di qualsiasi ruolo
  + Creazione di un processo esterno

  È possibile concedere tutti gli altri privilegi a un ruolo utente Amazon RDS per Oracle, tra cui il filtro avanzato e i privilegi di colonna.
+ AWS SCT supporta la conversione dei job Oracle in job eseguibili su Amazon RDS for Oracle. La conversione presenta alcuni limiti, inclusi i seguenti:
  + I processi eseguibili non sono supportati.
  + I processi di pianificazione che utilizzano il tipo di dati ANYDATA come un argomento non sono supportati.
+ One Node RAC (Real Application Cluster) Oracle è un'opzione disponibile per Oracle Database Enterprise Edition che è stata introdotta con Oracle Database 11g Release 2. Amazon RDS per Oracle non supporta la caratteristica RAC. Per alta disponibilità, utilizzare Amazon RDS Implementazioni Multi-AZ. 

  In un'implementazione Multi-AZ, Amazon RDS effettua automaticamente il provisioning e mantiene una replica standby sincrona in un'altra zona di disponibilità. L'istanza database principale viene replicata in modo sincrono tra le zone di disponibilità in una replica di standby. Questa funzionalità fornisce ridondanza dei dati, elimina i I/O blocchi e riduce al minimo i picchi di latenza durante i backup di sistema.
+ Oracle Spatial offre uno schema SQL e funzioni che semplificano le operazioni di storage, recupero, aggiornamento ed esecuzione di query per le raccolte di dati spaziali in un database Oracle. Oracle Locator offre funzionalità che sono solitamente richieste per il supporto di applicazioni Internet e wireless basate su servizi e di soluzioni GIS basate su partner. Oracle Locator è un sottoinsieme limitato di Oracle Spatial.

  Per utilizzare le funzionalità di Oracle Spatial e Oracle Locator aggiungi l'opzione SPATIAL o l'opzione LOCATOR (che si escludono reciprocamente) al gruppo di opzioni dell'istanza database.

  Esistono alcuni requisiti preliminari per l'utilizzo di Oracle Spatial e Oracle Locator su un'istanza database di Amazon RDS per Oracle:
  + L'istanza deve utilizzare la versione Oracle Enterprise Edition 12.1.0.2.v6 o successiva oppure 11.2.0.4.v10 o successiva.
  + L'istanza deve essere all'interno di un cloud privato virtuale (VPC).
  + L'istanza deve avere la classe dell'istanza database che può supportare la funzionalità Oracle. Ad esempio, Oracle Spatial non è supportato per le classi di istanza database db.m1.small, db.t1.micro, db.t2.micro o db.t2.small. [Per ulteriori informazioni, consulta Supporto delle classi di istanze DB per Oracle.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses)
  + L'istanza deve avere l'opzione Auto Minor Version Upgrade abilitata. Amazon RDS aggiorna l'istanza database al PSU Oracle più recente se esistono vulnerabilità di sicurezza con un punteggio CVSS score di 9\$1 o altre vulnerabilità di sicurezza annunciate. Per ulteriori informazioni, consultare la pagina 

    [Impostazioni per le istanze di Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings).
  + Se l'istanza DB è la versione 11.2.0.4.v10 o successiva, è necessario installare l'opzione XMLDB. Per ulteriori informazioni, consultare la pagina

    [Oracle XML DB.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html)
  + È necessaria una licenza per Oracle Spatial rilasciata da Oracle. Per ulteriori informazioni, consulta [Oracle Spatial and Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph) nella documentazione Oracle.
+ Data Guard è incluso con Oracle Database Enterprise Edition. Per alta disponibilità, utilizzare la caratteristica Amazon RDS Implementazioni Multi-AZ. 

  In un'implementazione Multi-AZ, Amazon RDS effettua automaticamente il provisioning e mantiene una replica standby sincrona in un'altra zona di disponibilità. L'istanza database principale viene replicata in modo sincrono tra le zone di disponibilità in una replica di standby. Questa funzionalità fornisce ridondanza dei dati, elimina i I/O blocchi e riduce al minimo i picchi di latenza durante i backup di sistema.
+ AWS SCT supporta la conversione di oggetti Oracle DBMS\$1SCHEDULER durante la migrazione ad Amazon RDS for Oracle. Il rapporto di AWS SCT valutazione indica se un oggetto di pianificazione può essere convertito. Per ulteriori informazioni sull'uso di oggetti di pianificazione con Amazon RDS, consulta la [ documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler).
+ Per le conversioni da Oracle ad Amazon RDS per Oracle, è supportato DB Links. Un collegamento di database è un oggetto dello schema in un database che consente di accedere agli oggetti in un altro database. Non è necessario che gli altri database siano Oracle. Tuttavia, per accedere ai database diversi da Oracle, devi utilizzare gli Oracle Heterogeneous Services.

  Dopo aver creato un link al database, è possibile utilizzarlo nelle istruzioni SQL per fare riferimento a tabelle, viste e PL/SQL oggetti nell'altro database. Per utilizzare un database link, aggiungilo `@dblink` alla tabella, alla vista o al nome PL/SQL dell'oggetto. Puoi eseguire query su una tabella o vista nell'altro database con l'istruzione SELECT. Per ulteriori informazioni sull'utilizzo dei collegamenti di database Oracle, consulta la [ documentazione di Oracle ](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083).

  Per ulteriori informazioni sull'uso dei collegamenti di database con Amazon RDS, consulta la [ documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks).
+ Il rapporto di AWS SCT valutazione fornisce le metriche del server per la conversione. Questi parametri sull'istanza Oracle includono quanto segue:
  + Capacità di calcolo e di memoria dell'istanza database di destinazione.
  + Funzionalità Oracle non supportate come Real Application Clusters che Amazon RDS non supporta.
  + Caricamento di lettura e scrittura su disco
  + Throughput del disco totale medio
  + Informazioni sul server quali il nome del server, il sistema operativo, il nome host e il set di caratteri.

## Privilegi per RDS for Oracle come destinazione
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

Per migrare ad Amazon RDS for Oracle, crea un utente privilegiato del database. È possibile utilizzare il seguente esempio di codice.

```
CREATE USER user_name IDENTIFIED BY your_password;

-- System privileges
GRANT DROP ANY CUBE BUILD PROCESS TO user_name;
GRANT ALTER ANY CUBE TO user_name;
GRANT CREATE ANY CUBE DIMENSION TO user_name;
GRANT CREATE ANY ASSEMBLY TO user_name;
GRANT ALTER ANY RULE TO user_name;
GRANT SELECT ANY DICTIONARY TO user_name;
GRANT ALTER ANY DIMENSION TO user_name;
GRANT CREATE ANY DIMENSION TO user_name;
GRANT ALTER ANY TYPE TO user_name;
GRANT DROP ANY TRIGGER TO user_name;
GRANT CREATE ANY VIEW TO user_name;
GRANT ALTER ANY CUBE BUILD PROCESS TO user_name;
GRANT CREATE ANY CREDENTIAL TO user_name;
GRANT DROP ANY CUBE DIMENSION TO user_name;
GRANT DROP ANY ASSEMBLY TO user_name;
GRANT DROP ANY PROCEDURE TO user_name;
GRANT ALTER ANY PROCEDURE TO user_name;
GRANT ALTER ANY SQL TRANSLATION PROFILE TO user_name;
GRANT DROP ANY MEASURE FOLDER TO user_name;
GRANT CREATE ANY MEASURE FOLDER TO user_name;
GRANT DROP ANY CUBE TO user_name;
GRANT DROP ANY MINING MODEL TO user_name;
GRANT CREATE ANY MINING MODEL TO user_name;
GRANT DROP ANY EDITION TO user_name;
GRANT CREATE ANY EVALUATION CONTEXT TO user_name;
GRANT DROP ANY DIMENSION TO user_name;
GRANT ALTER ANY INDEXTYPE TO user_name;
GRANT DROP ANY TYPE TO user_name;
GRANT CREATE ANY PROCEDURE TO user_name;
GRANT CREATE ANY SQL TRANSLATION PROFILE TO user_name;
GRANT CREATE ANY CUBE TO user_name;
GRANT COMMENT ANY MINING MODEL TO user_name;
GRANT ALTER ANY MINING MODEL TO user_name;
GRANT DROP ANY SQL PROFILE TO user_name;
GRANT CREATE ANY JOB TO user_name;
GRANT DROP ANY EVALUATION CONTEXT TO user_name;
GRANT ALTER ANY EVALUATION CONTEXT TO user_name;
GRANT CREATE ANY INDEXTYPE TO user_name;
GRANT CREATE ANY OPERATOR TO user_name;
GRANT CREATE ANY TRIGGER TO user_name;
GRANT DROP ANY ROLE TO user_name;
GRANT DROP ANY SEQUENCE TO user_name;
GRANT DROP ANY CLUSTER TO user_name;
GRANT DROP ANY SQL TRANSLATION PROFILE TO user_name;
GRANT ALTER ANY ASSEMBLY TO user_name;
GRANT CREATE ANY RULE SET TO user_name;
GRANT ALTER ANY OUTLINE TO user_name;
GRANT UNDER ANY TYPE TO user_name;
GRANT CREATE ANY TYPE TO user_name;
GRANT DROP ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY ROLE TO user_name;
GRANT DROP ANY VIEW TO user_name;
GRANT ALTER ANY INDEX TO user_name;
GRANT COMMENT ANY TABLE TO user_name;
GRANT CREATE ANY TABLE TO user_name;
GRANT CREATE USER TO user_name;
GRANT DROP ANY RULE SET TO user_name;
GRANT CREATE ANY CONTEXT TO user_name;
GRANT DROP ANY INDEXTYPE TO user_name;
GRANT ALTER ANY OPERATOR TO user_name;
GRANT CREATE ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY SEQUENCE TO user_name;
GRANT DROP ANY SYNONYM TO user_name;
GRANT CREATE ANY SYNONYM TO user_name;
GRANT DROP USER TO user_name;
GRANT ALTER ANY MEASURE FOLDER TO user_name;
GRANT ALTER ANY EDITION TO user_name;
GRANT DROP ANY RULE TO user_name;
GRANT CREATE ANY RULE TO user_name;
GRANT ALTER ANY RULE SET TO user_name;
GRANT CREATE ANY OUTLINE TO user_name;
GRANT UNDER ANY TABLE TO user_name;
GRANT UNDER ANY VIEW TO user_name;
GRANT DROP ANY DIRECTORY TO user_name;
GRANT ALTER ANY CLUSTER TO user_name;
GRANT CREATE ANY CLUSTER TO user_name;
GRANT ALTER ANY TABLE TO user_name;
GRANT CREATE ANY CUBE BUILD PROCESS TO user_name;
GRANT ALTER ANY CUBE DIMENSION TO user_name;
GRANT CREATE ANY EDITION TO user_name;
GRANT CREATE ANY SQL PROFILE TO user_name;
GRANT ALTER ANY SQL PROFILE TO user_name;
GRANT DROP ANY OUTLINE TO user_name;
GRANT DROP ANY CONTEXT TO user_name;
GRANT DROP ANY OPERATOR TO user_name;
GRANT DROP ANY LIBRARY TO user_name;
GRANT ALTER ANY LIBRARY TO user_name;
GRANT CREATE ANY LIBRARY TO user_name;
GRANT ALTER ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY TRIGGER TO user_name;
GRANT CREATE ANY SEQUENCE TO user_name;
GRANT DROP ANY INDEX TO user_name;
GRANT CREATE ANY INDEX TO user_name;
GRANT DROP ANY TABLE TO user_name;
GRANT SELECT_CATALOG_ROLE TO user_name;
GRANT SELECT ANY SEQUENCE TO user_name;

-- Database Links
GRANT CREATE DATABASE LINK TO user_name;
GRANT CREATE PUBLIC DATABASE LINK TO user_name;
GRANT DROP PUBLIC DATABASE LINK TO user_name;


-- Server Level Objects (directory)
GRANT CREATE ANY DIRECTORY TO user_name;
GRANT DROP ANY DIRECTORY TO user_name;
-- (for RDS only)
GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO user_name;

-- Server Level Objects (tablespace)
GRANT CREATE TABLESPACE TO user_name;
GRANT DROP TABLESPACE TO user_name;

-- Server Level Objects (user roles)
/* (grant source privileges with admin option or convert roles/privs as DBA) */

-- Queues
grant execute on DBMS_AQADM to user_name;
grant aq_administrator_role to user_name;

-- for Materialized View Logs creation
GRANT SELECT ANY TABLE TO user_name;

-- Roles
GRANT RESOURCE TO user_name;
GRANT CONNECT TO user_name;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

## Limitazioni durante la conversione da Oracle ad Amazon RDS for Oracle
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Alcuni limiti da considerare durante la migrazione dello schema e del codice Oracle ad Amazon RDS per Oracle: 
+  Un ruolo predefinito in Amazon RDS, denominato DBA, normalmente consente tutti i privilegi di amministrazione a un motore di database Oracle. I seguenti privilegi non sono disponibili per il ruolo DBA su un'istanza database di Amazon RDS utilizzando il motore Oracle:
  + Alter di database
  + Alter system
  + Creazione di una directory
  + Concessione di qualsiasi privilegio
  + Concessione di qualsiasi ruolo
  + Creazione di un processo esterno

  È possibile concedere tutti gli altri privilegi a un ruolo utente Oracle RDS.
+ Amazon RDS for Oracle supporta il controllo tradizionale, il controllo granulare tramite il pacchetto DBMS\$1FGA e Oracle Unified Auditing.
+ Amazon RDS per Oracle non supporta la funzionalità CDC (Change Data Capture). Per eseguire CDC durante e dopo una migrazione di database, usa. AWS Database Migration Service