View a markdown version of this page

Impostazioni di conversione da Oracle a PostgreSQL - AWS Database Migration Service

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à.

Impostazioni di conversione da Oracle a PostgreSQL

Le seguenti impostazioni si applicano quando l'origine è Oracle e la destinazione è Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL. Puoi configurare queste impostazioni utilizzando l'operazione o l'API. AWS Management Console ModifyConversionConfiguration

Questo argomento tratta le impostazioni specifiche del percorso di conversione da Oracle a PostgreSQL. Oltre a queste impostazioni, DMS Schema Conversion fornisce impostazioni che si applicano a tutte le coppie di origine e destinazione, come il livello di gravità per i commenti sugli elementi di azione in SQL convertito e l'opzione di utilizzare l'intelligenza artificiale generativa per la conversione. Per queste impostazioni, vedi. Impostazioni di conversione comuni

Quando utilizzi l'API o la AWS CLI, specifica le impostazioni del percorso di conversione nei nomi delle sezioni ORACLE_TO_POSTGRESQLORACLE_TO_POSTGRESQL_14, oppure. ORACLE_TO_POSTGRESQL_15 Tutte e tre le sezioni con versione accettano le stesse chiavi. Per scoprire quali nomi di sezione vengono utilizzati dal tuo progetto, chiama DescribeConversionConfigurationprima e aggiorna solo le sezioni presenti nella risposta.

Ogni impostazione mostra l' AWS Management Console etichetta seguita dal nome dei parametri API e AWS CLI tra parentesi. Utilizza il nome del parametro durante la configurazione delle impostazioni con l'API o la AWS CLI. Le impostazioni sono elencate nello stesso ordine in cui appaiono in. AWS Management Console

Versione del motore di destinazione (ORACLE_TO_POSTGRESQL_target_engine_version)

Scegliete la versione del motore per il database di destinazione. Questa impostazione è il set di funzionalità della versione principale di PostgreSQL a cui DMS Schema Conversion si rivolge per la conversione e determina a quale sezione delle impostazioni con versione si applica DMS Schema Conversion (o). ORACLE_TO_POSTGRESQL_14 ORACLE_TO_POSTGRESQL_15 Il valore è 15 destinato alle funzionalità di PostgreSQL 15 e versioni successive e alle funzionalità di PostgreSQL 14, 14 in modo che il database di destinazione possa eseguire una versione successiva al valore scelto (ad esempio, un valore di per un target PostgreSQL 16). 15 A differenza delle altre impostazioni di questa pagina, questa impostazione non è memorizzata in una sezione del percorso di conversione. Viene invece memorizzata nella Conversion version sezione di primo livello, come illustrato nell'esempio seguente.

{ "Conversion version": { "ORACLE_TO_POSTGRESQL_target_engine_version": "15" } }

Tipo: String (14|15)

Default: 15

Viste materializzate () MaterializedViewConvert

Specifica in che modo DMS Schema Conversion converte le viste materializzate Oracle sulla destinazione.

API/CLI valore Risultato sull'obiettivo
TABLE DMS Schema Conversion crea una tabella normale con le stesse colonne. Utilizzatela quando gestite l'aggiornamento manualmente o con uno strumento di replica.
MATERIALIZED_VIEW DMS Schema Conversion crea un PostgreSQLMATERIALIZED VIEW. Usalo quando il target supporta. REFRESH MATERIALIZED VIEW

Tipo: String (TABLE|MATERIALIZED_VIEW)

Default: TABLE

Genera l'id della riga (GenerateRowId)

Il database Oracle di origine può utilizzare la pseudo colonna ROWID. PostgreSQL non supporta funzionalità simili. Questa impostazione specifica se DMS Schema Conversion emula la ROWID pseudocolonna nel codice convertito e quale tipo di dati DMS Schema Conversion utilizza per l'emulazione.

Etichetta della console API/CLI valore Comportamento
Non generare false DMS Schema Conversion non emula la ROWID pseudocolonna e lascia i riferimenti come elementi di azione. Usalo quando il codice sorgente Oracle non lo utilizza. ROWID Il codice convertito viene eseguito più velocemente.
Usa il tipo di dati bigint per emulare la pseudocolonna ROWID true DMS Schema Conversion emula la ROWID pseudocolonna nel codice convertito utilizzando il tipo di dati. bigint
Usa il tipo di dati che varia a caratteri per emulare la pseudocolonna ROWID GENERATE_AS_CHARACTER_DOMAIN_TYPE DMS Schema Conversion emula la ROWID pseudocolonna nel codice convertito utilizzando il tipo di dati. character varying

Tipo: String (enum)

Default: false

Codice

Seleziona le impostazioni di conversione specifiche del codice Oracle sorgente.

Utilizzate la mappatura ottimizzata dei tipi di dati per le colonne del tipo di dati NUMBER () UseOptimizedMappingForNumberConversion

Speciifica se DMS Schema Conversion associa ogni NUMBER colonna Oracle al tipo di dati numerici più adatto in base alla precisione e alla scala.

  • true— DMS Schema Conversion mappa ogni NUMBER colonna sul tipo numerico PostgreSQL più specifico (ad esempioSMALLINT,INTEGER, BIGINT o) in base alla sua precisione e scala.

  • false— DMS Schema Conversion mappa tutte le colonne su. NUMBER NUMERIC

Tipo: Boolean (|) true false

Default: true

Usa una funzione PostgreSQL TO_CHAR nativa () ToCharFunctionOracle

Speciifica se DMS Schema Conversion emula la funzione Oracle nel codice convertito. TO_CHAR

  • false— DMS Schema Conversion emula il TO_CHAR comportamento Oracle nel codice convertito.

  • true— DMS Schema Conversion converte TO_CHAR e TO_NCHAR chiama alla funzione PostgreSQL nativa. TO_CHAR Seleziona questa opzione per evitare l'emulazione quando le stringhe di formato sono compatibili con PostgreSQL.

Tipo: Boolean (|) true false

Default: false

Usa una funzione PostgreSQL TO_DATE nativa () ToDateFunctionOracle

Speciifica se DMS Schema Conversion emula la funzione Oracle nel codice convertito. TO_DATE

  • false— DMS Schema Conversion emula il TO_DATE comportamento Oracle nel codice convertito.

  • true— DMS Schema Conversion converte TO_DATE le chiamate alla funzione PostgreSQL nativa. TO_DATE

Tipo: Boolean (|) true false

Default: false

Usa una funzione PostgreSQL TO_NUMBER nativa () ToNumber

Speciifica se DMS Schema Conversion emula la funzione Oracle nel codice convertito. TO_NUMBER

  • false— DMS Schema Conversion emula il TO_NUMBER comportamento Oracle nel codice convertito.

  • true— DMS Schema Conversion converte TO_NUMBER le chiamate alla funzione PostgreSQL nativa. TO_NUMBER

Tipo: Boolean (|) true false

Default: false

Migliora le prestazioni del codice convertito laddove il database e le applicazioni utilizzano lo stesso fuso orario () ToTimeZone

Speciifica se DMS Schema Conversion emula i fusi orari nel codice convertito.

  • true— DMS Schema Conversion non emula i fusi orari. Usalo quando il database e le applicazioni utilizzano lo stesso fuso orario. Il codice convertito viene eseguito più velocemente.

  • false— DMS Schema Conversion emula i fusi orari nel codice convertito.

Tipo: Boolean (|) true false

Default: false

Compila le sequenze convertite con l'ultimo valore generato sul lato sorgente () AlertSequenceRestart

Speciifica se DMS Schema Conversion continua le sequenze convertite dall'ultimo valore generato nell'origine.

  • true— DMS Schema Conversion imposta ogni sequenza convertita in modo che inizi dall'ultimo valore generato nell'origine, in modo che le sequenze continuino senza conflitti.

  • false— DMS Schema Conversion avvia le sequenze convertite dal loro valore iniziale predefinito.

Tipo: Boolean (|) true false

Default: false

Converti le colonne a chiave primaria ed esterna del tipo di dati NUMBER nel tipo di dati BIGINT () ConvertNumberToBigint

Speciifica se DMS Schema Conversion converte le colonne della chiave primaria e della chiave esterna del NUMBER tipo di dati in. BIGINT Usare con cautela per evitare la perdita di dati se il database di origine memorizza numeri a virgola mobile in queste colonne.

  • true— DMS Schema Conversion mappa le colonne della chiave primaria e della chiave esterna su. NUMBER BIGINT

  • false— DMS Schema Conversion utilizza la mappatura numerica standard per queste colonne.

Tipo: Boolean (|) true false

Default: false

Converti solo i trigger e i vincoli attivi () IgnoreDisabledTriggersConstraints

Speciifica se DMS Schema Conversion ignora i trigger e i vincoli disattivati durante la conversione.

  • true— DMS Schema Conversion converte solo i trigger e i vincoli attivi e ignora quelli disattivati.

  • false— DMS Schema Conversion converte tutti i trigger e i vincoli, compresi quelli disattivati.

Tipo: Boolean (|) true false

Default: false

Converte il codice SQL dinamico creato in un formato chiamato routines () ConvertOutputAsDynamic

Speciifica se DMS Schema Conversion converte le variabili di stringa a cui si fa riferimento all'esterno della routine come SQL dinamico.

  • true— DMS Schema Conversion converte le variabili di stringa a cui si fa riferimento all'esterno della routine come SQL dinamico.

  • false— DMS Schema Conversion non converte queste variabili di stringa in SQL dinamico.

Tipo: Boolean (|) true false

Default: false

Converti le procedure in funzioni () ConvertProceduresToFunction

Specifica se DMS Schema Conversion converte le stored procedure di Oracle in funzioni void PostgreSQL.

  • true— DMS Schema Conversion converte le stored procedure Oracle in funzioni void PostgreSQL.

  • false— La conversione dello schema DMS converte le stored procedure Oracle in procedure PostgreSQL.

Tipo: Boolean (|) true false

Default: false

Conserva i nomi dei vincoli generati dal sistema () ConvertSysConstraintNamesUsingOriginal

Speciifica se DMS Schema Conversion mantiene i nomi dei vincoli originali generati dal sistema Oracle nella destinazione. Utilizzate questa opzione se il codice Oracle di origine utilizza nomi di vincoli generati dal sistema per creare vincoli con gli stessi nomi nel database di destinazione.

  • true— DMS Schema Conversion mantiene i nomi dei vincoli originali generati dal sistema Oracle nella destinazione.

  • false— DMS Schema Conversion genera nuovi nomi di vincoli.

Tipo: Boolean (|) true false

Default: false

Imposta il fuso orario del database di origine () UseDefaultTimeZoneForSysdateEmulation

Speciifica se la funzione che emula la SYSDATE funzione Oracle utilizza il fuso orario inDefaultTimeZoneForSysdateEmulation, in modo che il codice convertito restituisca gli stessi valori del database di origine.

  • true— La conversione dello schema DMS utilizza il fuso orario specificato in DefaultTimeZoneForSysdateEmulation per l'emulazione. SYSDATE

  • false— DMS Schema Conversion utilizza il fuso orario predefinito per l'emulazione. SYSDATE

Tipo: Boolean (|) true false

Default: false

DefaultTimeZoneForSysdateEmulation

Il fuso orario utilizzato da DMS Schema Conversion quando viene attivata SYSDATE l'emulazione. UseDefaultTimeZoneForSysdateEmulation Specificate un nome di fuso orario IANA valido, ad esempio UTCAmerica/New_York, o. Europe/Berlin Questo valore non ha effetto quando UseDefaultTimeZoneForSysdateEmulation èfalse.

Tipo: String (nome del fuso orario IANA)

Default: UTC

Nota

AWS Management Console Elenca un'opzione aggiuntiva, Aggiungi funzioni del pacchetto di estensione che sollevano eccezioni definite dall'utente, tra Converti le procedure in funzioni e Conserva i nomi dei vincoli generati dal sistema. Questa opzione è configurata solo in AWS Management Console e non è disponibile tramite l'API o la AWS CLI. Il comportamento relativo al livello di gravità è controllato dall'impostazione comune. ShowSeverityLevelInSql Per ulteriori informazioni, consulta Impostazioni di conversione comuni.

Routine integrate di Oracle

Scegli le routine integrate di Oracle da utilizzare nel codice convertito. Oracle è un'estensione PostgreSQL che fornisce routine compatibili con le funzioni integrate di Oracle. Ogni routine ha un'impostazione booleana dedicata. Quando si imposta una routine sutrue, DMS Schema Conversion converte la funzione integrata di Oracle corrispondente nella relativa routine Oracle. Quando lo impostate sufalse, DMS Schema Conversion lascia la funzione come elemento di azione per la revisione manuale. Per utilizzare queste routine, l'estensione orafce deve essere disponibile nel database di destinazione. Tutte queste routine sono predefinite su. false Imposta una routine su true solo dopo aver verificato che il comportamento della funzione durante l'utilizzo sia compatibile con la routine Oracle.

Nome dell'impostazione Funzione integrata Oracle
AddMonthsBuiltinFunctionOracle ADD_MONTHS
BitandBuiltinFunctionOracle BITAND
CoshBuiltinFunctionOracle COSH
DbmsAssertBuiltinFunctionOracle DBMS_ASSERTpacchetto
DbmsOutputBuiltinFunctionOracle DBMS_OUTPUTpacchetto
DbmsRandomBuiltinFunctionOracle DBMS_RANDOMpacchetto
DbtimezoneBuiltinFunctionOracle DBTIMEZONE
DecodeBuiltinFunctionOracle DECODE
DumpBuiltinFunctionOracle DUMP
InstrBuiltinFunctionOracle INSTR
InstrbBuiltinFunctionOracle INSTRB
LastDayBuiltinFunctionOracle LAST_DAY
LengthBuiltinFunctionOracle LENGTH
LengthbBuiltinFunctionOracle LENGTHB
ListaggBuiltinFunctionOracle LISTAGG
LnnvlBuiltinFunctionOracle LNNVL
LpadBuiltinFunctionOracle LPAD
LtrimBuiltinFunctionOracle LTRIM
MedianBuiltinFunctionOracle MEDIAN
MonthsBetweenBuiltinFunctionOracle MONTHS_BETWEEN
NanvlBuiltinFunctionOracle NANVL
NextDayBuiltinFunctionOracle NEXT_DAY
NlssortBuiltinFunctionOracle NLSSORT
Nvl2BuiltinFunctionOracle NVL2
NvlBuiltinFunctionOracle NVL
RoundDateFmtBuiltinFunctionOracle ROUND(data)
RoundNumberBuiltinFunctionOracle ROUND(numero)
RpadBuiltinFunctionOracle RPAD
RtrimBuiltinFunctionOracle RTRIM
SessiontimezoneBuiltinFunctionOracle SESSIONTIMEZONE
SinhBuiltinFunctionOracle SINH
SubstrBuiltinFunctionOracle SUBSTR
SubstrbBuiltinFunctionOracle SUBSTRB
SysdateBuiltinFunctionOracle SYSDATE
TanhBuiltinFunctionOracle TANH
ToCharDatetimeBuiltinFunctionOracle TO_CHAR(data/ora)
ToCharNumberBuiltinFunctionOracle TO_CHAR(numero)
ToDateBuiltinFunctionOracle TO_DATE
ToMultiByteBuiltinFunctionOracle TO_MULTI_BYTE
ToNumberBuiltinFunctionOracle TO_NUMBER
ToSingleByteBuiltinFunctionOracle TO_SINGLE_BYTE
TruncDateBuiltinFunctionOracle TRUNC(data)
TruncNumberBuiltinFunctionOracle TRUNC(numero)

Ogni routine è una chiave booleana separata. L'esempio seguente attiva le routine Oracle e le funzioni di ADD_MONTHS Oracle. NVL SUBSTR Aggiungi o rimuovi le chiavi in base alle funzioni del codice sorgente e applica le stesse chiavi a ogni nome di sezione utilizzato dal progetto.

{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
Impostazioni del codice SQL

Configura il modo in cui DMS Schema Conversion gestisce gli oggetti integrati di Oracle che PostgreSQL non supporta.

Converti oggetti incorporati non supportati in oggetti stub () ConvUnsupportedBuiltinsToStubs

Speciifica se DMS Schema Conversion sostituisce gli oggetti incorporati non supportati con oggetti stub.

  • false— DMS Schema Conversion lascia gli oggetti incorporati non supportati come elementi di azione nel rapporto di valutazione.

  • true— DMS Schema Conversion sostituisce ogni oggetto integrato non supportato con un oggetto stub con la stessa firma. L'oggetto convertito viene compilato, quindi è possibile distribuire e testare il resto dello schema prima di indirizzare i singoli stub.

Tipo: Boolean (|) true false

Default: false

Crea oggetti stub in uno schema separato () CreateStubsInSeparateSchema

Speciifica se DMS Schema Conversion crea oggetti stub in uno schema separato. Questa opzione appare AWS Management Console solo quando è selezionata l'opzione Converti oggetti incorporati non supportati in oggetti stub e ha effetto solo quando l'opzione è abilitata.

  • true— La conversione dello schema DMS crea oggetti stub in uno schema separato. Ciò mantiene puliti gli schemi delle applicazioni e semplifica l'identificazione degli stub che devono ancora essere implementati.

  • false— DMS Schema Conversion crea oggetti stub nello stesso schema dell'oggetto convertito.

Tipo: Boolean (|) true false

Default: true

Esempio: configurare Oracle per le impostazioni di PostgreSQL

L'esempio seguente mantiene le viste materializzate come viste materializzate di PostgreSQL, emula la pseudocolonna utilizzando il tipo di dati e converte ROWID le procedure in funzioni. bigint Applica le stesse impostazioni a ogni nome di sezione utilizzato dal progetto (controlla prima l'output di). DescribeConversionConfiguration

{ "ORACLE_TO_POSTGRESQL_15": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL_14": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true } }