View a markdown version of this page

Paramètres de conversion Oracle vers PostgreSQL - AWS Database Migration Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Paramètres de conversion Oracle vers PostgreSQL

Les paramètres suivants s'appliquent lorsque la source est Oracle et que la cible est Amazon RDS for PostgreSQL ou Amazon Aurora PostgreSQL. Vous pouvez configurer ces paramètres à l'aide de l'opération Console de gestion AWS ou de l'ModifyConversionConfigurationAPI.

Cette rubrique couvre les paramètres spécifiques au chemin de conversion d'Oracle vers PostgreSQL. Outre ces paramètres, DMS Schema Conversion fournit des paramètres qui s'appliquent à toutes les paires source et cible, tels que le niveau de gravité des commentaires relatifs aux actions dans le code SQL converti et la possibilité d'utiliser l'IA générative pour la conversion. Pour ces paramètres, voirParamètres de conversion courants.

Lorsque vous utilisez l'API ou la AWS CLI, spécifiez les paramètres du chemin de conversion sous les noms de section ORACLE_TO_POSTGRESQLORACLE_TO_POSTGRESQL_14, ouORACLE_TO_POSTGRESQL_15. Les trois sections versionnées acceptent les mêmes clés. Pour trouver les noms de section utilisés par votre projet, appelez d'DescribeConversionConfigurationabord et mettez à jour uniquement les sections présentes dans la réponse.

Chaque paramètre affiche l' Console de gestion AWS étiquette suivie du nom du paramètre de l'API et de la AWS CLI entre parenthèses. Utilisez le nom du paramètre lors de la configuration des paramètres à l'aide de l'API ou de la AWS CLI. Les paramètres sont répertoriés dans l'ordre dans lequel ils apparaissent dans le Console de gestion AWS.

Version du moteur cible (ORACLE_TO_POSTGRESQL_target_engine_version)

Choisissez la version du moteur pour votre base de données cible. Ce paramètre est l'ensemble de fonctionnalités de la version principale de PostgreSQL que la conversion de schéma DMS cible pour la conversion, et il détermine la section des paramètres versionnés applicable (ou). ORACLE_TO_POSTGRESQL_14 ORACLE_TO_POSTGRESQL_15 La valeur 15 cible les fonctionnalités de PostgreSQL 15 et des versions ultérieures, 14 ainsi que les fonctionnalités de PostgreSQL 14, afin que votre base de données cible puisse exécuter une version ultérieure à la valeur que vous avez choisie (par exemple, une valeur de 15 pour une cible PostgreSQL 16). Contrairement aux autres paramètres de cette page, ce paramètre n'est pas stocké dans une section du chemin de conversion. Il est plutôt stocké dans la Conversion version section de niveau supérieur, comme indiqué dans l'exemple suivant.

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

Type : Chaîne (14|15)

Par défaut : 15

Vues matérialisées () MaterializedViewConvert

Spécifie la manière dont DMS Schema Conversion convertit les vues matérialisées Oracle sur la cible.

API/CLI valeur Résultat conforme à l'objectif
TABLE La conversion de schéma DMS crée une table normale avec les mêmes colonnes. Utilisez-le lorsque vous gérez l'actualisation manuellement ou à l'aide d'un outil de réplication.
MATERIALIZED_VIEW La conversion du schéma DMS crée un PostgreSQLMATERIALIZED VIEW. Utilisez-le lorsque la cible prend en chargeREFRESH MATERIALIZED VIEW.

Type : Chaîne (TABLE|MATERIALIZED_VIEW)

Par défaut : TABLE

Générer un identifiant de ligne (GenerateRowId)

Votre base de données Oracle source peut utiliser la pseudocolonne ROWID. PostgreSQL ne prend pas en charge de fonctionnalité similaire. Ce paramètre indique si DMS Schema Conversion émule la ROWID pseudocolonne dans le code converti et quel type de données DMS Schema Conversion utilise pour l'émulation.

Étiquette de console API/CLI valeur Comportement
Ne pas générer false La conversion du schéma DMS n'émule pas la ROWID pseudocolonne et laisse les références sous forme d'actions. Utilisez-le lorsque votre code source Oracle n'est pas utiliséROWID. Le code converti s'exécute plus rapidement.
Utilisez le type de données bigint pour émuler la pseudocolonne ROWID true La conversion de schéma DMS émule la ROWID pseudocolonne du code converti en utilisant le type de données. bigint
Utilisez le type de données à caractère variable pour émuler la pseudocolonne ROWID GENERATE_AS_CHARACTER_DOMAIN_TYPE La conversion de schéma DMS émule la ROWID pseudocolonne du code converti en utilisant le type de données. character varying

Type : Chaîne (enum)

Par défaut : false

Code

Sélectionnez les paramètres de conversion spécifiques à votre code source Oracle.

Utilisez le mappage de type de données optimisé pour les colonnes du type de données NUMBER (UseOptimizedMappingForNumberConversion)

Spécifie si DMS Schema Conversion mappe chaque NUMBER colonne Oracle au type de données numériques le mieux adapté en fonction de la précision et de l'échelle.

  • true— La conversion du schéma DMS fait correspondre chaque NUMBER colonne au type numérique PostgreSQL le plus spécifique (par exempleSMALLINT,INTEGER, BIGINT ou) en fonction de sa précision et de son échelle.

  • false— La conversion du schéma DMS fait correspondre toutes les NUMBER colonnes àNUMERIC.

Type : booléen (|) true false

Par défaut : true

Utiliser une fonction PostgreSQL TO_CHAR native () ToCharFunctionOracle

Spécifie si la conversion du schéma DMS émule la TO_CHAR fonction Oracle dans le code converti.

  • false— La conversion de schéma DMS émule le TO_CHAR comportement d'Oracle dans le code converti.

  • true— La conversion de schéma DMS convertit TO_CHAR et TO_NCHAR appelle la fonction native PostgreSQLTO_CHAR. Sélectionnez cette option pour éviter l'émulation lorsque vos chaînes de format sont compatibles avec PostgreSQL.

Type : booléen (|) true false

Par défaut : false

Utiliser une fonction PostgreSQL TO_DATE native () ToDateFunctionOracle

Spécifie si la conversion du schéma DMS émule la TO_DATE fonction Oracle dans le code converti.

  • false— La conversion de schéma DMS émule le TO_DATE comportement d'Oracle dans le code converti.

  • true— La conversion de schéma DMS convertit les TO_DATE appels vers la fonction PostgreSQL TO_DATE native.

Type : booléen (|) true false

Par défaut : false

Utiliser une fonction PostgreSQL TO_NUMBER native () ToNumber

Spécifie si la conversion du schéma DMS émule la TO_NUMBER fonction Oracle dans le code converti.

  • false— La conversion de schéma DMS émule le TO_NUMBER comportement d'Oracle dans le code converti.

  • true— La conversion de schéma DMS convertit les TO_NUMBER appels vers la fonction PostgreSQL TO_NUMBER native.

Type : booléen (|) true false

Par défaut : false

Améliorez les performances du code converti lorsque la base de données et les applications utilisent le même fuseau horaire (ToTimeZone)

Spécifie si la conversion du schéma DMS émule les fuseaux horaires dans le code converti.

  • true— La conversion du schéma DMS n'émule pas les fuseaux horaires. Utilisez-le lorsque votre base de données et vos applications utilisent le même fuseau horaire. Le code converti s'exécute plus rapidement.

  • false— La conversion du schéma DMS émule les fuseaux horaires dans le code converti.

Type : booléen (|) true false

Par défaut : false

Remplir les séquences converties avec la dernière valeur générée côté source () AlertSequenceRestart

Spécifie si la conversion du schéma DMS continue les séquences converties à partir de la dernière valeur générée sur la source.

  • true— La conversion de schéma DMS définit chaque séquence convertie pour qu'elle commence à partir de la dernière valeur générée sur la source, afin que les séquences se poursuivent sans conflit.

  • false— La conversion de schéma DMS démarre les séquences converties à partir de leur valeur initiale par défaut.

Type : booléen (|) true false

Par défaut : false

Convertissez les colonnes de clé primaire et étrangère du type de données NUMBER en données de type BIGINT () ConvertNumberToBigint

Spécifie si la conversion du schéma DMS convertit les colonnes de clé primaire et de clé étrangère du type de NUMBER données enBIGINT. À utiliser avec précaution pour éviter toute perte de données si votre base de données source stocke des nombres à virgule flottante dans ces colonnes.

  • true— La conversion du schéma DMS fait correspondre les NUMBER colonnes de clé primaire et de clé étrangère àBIGINT.

  • false— La conversion de schéma DMS utilise le mappage numérique standard pour ces colonnes.

Type : booléen (|) true false

Par défaut : false

Convertissez uniquement les déclencheurs et les contraintes actifs (IgnoreDisabledTriggersConstraints)

Spécifie si la conversion du schéma DMS ignore les déclencheurs et les contraintes désactivés lors de la conversion.

  • true— La conversion de schéma DMS convertit uniquement les déclencheurs et les contraintes actifs et ignore ceux qui sont désactivés.

  • false— La conversion de schéma DMS convertit tous les déclencheurs et contraintes, y compris ceux qui sont désactivés.

Type : booléen (|) true false

Par défaut : false

Convertissez le code SQL dynamique créé dans des routines appelées (ConvertOutputAsDynamic)

Spécifie si la conversion de schéma DMS convertit les variables de chaîne référencées en dehors de la routine en SQL dynamique.

  • true— La conversion de schéma DMS convertit les variables de chaîne référencées en dehors de la routine en SQL dynamique.

  • false— La conversion de schéma DMS ne convertit pas ces variables de chaîne en SQL dynamique.

Type : booléen (|) true false

Par défaut : false

Convertir les procédures en fonctions (ConvertProceduresToFunction)

Spécifie si la conversion de schéma DMS convertit les procédures stockées Oracle en fonctions d'annulation de PostgreSQL.

  • true— La conversion de schéma DMS convertit les procédures stockées Oracle en fonctions d'annulation de PostgreSQL.

  • false— La conversion de schéma DMS convertit les procédures stockées Oracle en procédures PostgreSQL.

Type : booléen (|) true false

Par défaut : false

Conservez les noms des contraintes générées par le système (ConvertSysConstraintNamesUsingOriginal)

Spécifie si DMS Schema Conversion conserve les noms de contraintes originaux générés par le système Oracle dans la cible. Utilisez cette option si votre code Oracle source utilise des noms de contraintes générés par le système pour créer des contraintes portant les mêmes noms dans votre base de données cible.

  • true— La conversion du schéma DMS conserve les noms de contraintes originaux générés par le système Oracle dans la cible.

  • false— La conversion de schéma DMS génère de nouveaux noms de contraintes.

Type : booléen (|) true false

Par défaut : false

Définissez le fuseau horaire de votre base de données source (UseDefaultTimeZoneForSysdateEmulation)

Spécifie si la fonction qui émule la SYSDATE fonction Oracle utilise le fuseau horaire inDefaultTimeZoneForSysdateEmulation, de sorte que le code converti renvoie les mêmes valeurs que votre base de données source.

  • true— La conversion de schéma DMS utilise le fuseau horaire spécifié DefaultTimeZoneForSysdateEmulation pour l'SYSDATEémulation.

  • false— La conversion de schéma DMS utilise le fuseau horaire par défaut pour l'SYSDATEémulation.

Type : booléen (|) true false

Par défaut : false

DefaultTimeZoneForSysdateEmulation

Fuseau horaire utilisé par DMS Schema Conversion lorsque l'SYSDATEémulation est activée. UseDefaultTimeZoneForSysdateEmulation Spécifiez un nom de fuseau horaire IANA valideUTC, tel queAmerica/New_York, ouEurope/Berlin. Cette valeur n'a aucun effet lorsqu'elle UseDefaultTimeZoneForSysdateEmulation est définiefalse.

Type : chaîne (nom du fuseau horaire IANA)

Par défaut : UTC

Note

Il Console de gestion AWS répertorie une option supplémentaire, Ajouter des fonctions de pack d'extension qui déclenchent des exceptions définies par l'utilisateur, entre Convertir les procédures en fonctions et Conserver les noms des contraintes générées par le système. Cette option est configurée uniquement dans le Console de gestion AWS et n'est pas disponible via l'API ou la AWS CLI. Le comportement du niveau de gravité associé est contrôlé par le paramètre ShowSeverityLevelInSql commun. Pour de plus amples informations, veuillez consulter Paramètres de conversion courants.

Routines intégrées à Oracle

Choisissez les routines intégrées d'Oracle à utiliser dans le code converti. Oracle est une extension PostgreSQL qui fournit des routines compatibles avec les fonctions intégrées d'Oracle. Chaque routine possède un paramètre booléen dédié. Lorsque vous définissez une routine surtrue, DMS Schema Conversion convertit la fonction intégrée Oracle correspondante en routine Oracle. Lorsque vous la définissez surfalse, la conversion du schéma DMS laisse la fonction sous forme d'action pour une révision manuelle. Pour utiliser ces routines, l'extension Oracle doit être disponible sur votre base de données cible. Toutes ces routines sont définies par défaut surfalse. Définissez une routine true uniquement après avoir vérifié que le comportement de la fonction lors de votre utilisation est compatible avec la routine Oracle.

Nom du paramètre Fonction intégrée Oracle
AddMonthsBuiltinFunctionOracle ADD_MONTHS
BitandBuiltinFunctionOracle BITAND
CoshBuiltinFunctionOracle COSH
DbmsAssertBuiltinFunctionOracle DBMS_ASSERTpaquet
DbmsOutputBuiltinFunctionOracle DBMS_OUTPUTpaquet
DbmsRandomBuiltinFunctionOracle DBMS_RANDOMpaquet
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(date)
RoundNumberBuiltinFunctionOracle ROUND(numéro)
RpadBuiltinFunctionOracle RPAD
RtrimBuiltinFunctionOracle RTRIM
SessiontimezoneBuiltinFunctionOracle SESSIONTIMEZONE
SinhBuiltinFunctionOracle SINH
SubstrBuiltinFunctionOracle SUBSTR
SubstrbBuiltinFunctionOracle SUBSTRB
SysdateBuiltinFunctionOracle SYSDATE
TanhBuiltinFunctionOracle TANH
ToCharDatetimeBuiltinFunctionOracle TO_CHAR(date/heure)
ToCharNumberBuiltinFunctionOracle TO_CHAR(numéro)
ToDateBuiltinFunctionOracle TO_DATE
ToMultiByteBuiltinFunctionOracle TO_MULTI_BYTE
ToNumberBuiltinFunctionOracle TO_NUMBER
ToSingleByteBuiltinFunctionOracle TO_SINGLE_BYTE
TruncDateBuiltinFunctionOracle TRUNC(date)
TruncNumberBuiltinFunctionOracle TRUNC(numéro)

Chaque routine est une clé booléenne distincte. L'exemple suivant active les routines Oracle pour les fonctions Oracle ADD_MONTHSNVL, etSUBSTR. Ajoutez ou supprimez des clés correspondant aux fonctions de votre code source, et appliquez les mêmes clés à chaque nom de section utilisé par votre projet.

{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
Paramètres du code SQL

Configurez la façon dont la conversion de schéma DMS gère les objets intégrés à Oracle que PostgreSQL ne prend pas en charge.

Convertissez les objets intégrés non pris en charge en objets stub () ConvUnsupportedBuiltinsToStubs

Spécifie si la conversion de schéma DMS remplace les objets intégrés non pris en charge par des objets stub.

  • false— La conversion du schéma DMS laisse les objets intégrés non pris en charge en tant qu'éléments d'action dans le rapport d'évaluation.

  • true— La conversion de schéma DMS remplace chaque objet intégré non pris en charge par un objet stub portant la même signature. L'objet converti est compilé, ce qui vous permet de déployer et de tester le reste du schéma avant de traiter des stubs individuels.

Type : booléen (|) true false

Par défaut : false

Création d'objets stub dans un schéma distinct () CreateStubsInSeparateSchema

Spécifie si la conversion de schéma DMS crée des objets stub dans un schéma distinct. Cette option apparaît Console de gestion AWS uniquement lorsque l'option Convertir les objets intégrés non pris en charge en objets stub est sélectionnée, et elle ne prend effet que lorsque cette option est activée.

  • true— La conversion de schéma DMS crée des objets stub dans un schéma distinct. Cela permet de garder vos schémas d'application propres et d'identifier facilement les stubs qui doivent encore être implémentés.

  • false— La conversion de schéma DMS crée des objets stub dans le même schéma que l'objet converti.

Type : booléen (|) true false

Par défaut : true

Exemple : configurer Oracle selon les paramètres PostgreSQL

L'exemple suivant conserve les vues matérialisées sous forme de vues matérialisées PostgreSQL, émule ROWID la pseudocolonne en utilisant le type de données et convertit bigint les procédures en fonctions. Appliquez les mêmes paramètres à chaque nom de section utilisé par votre projet (vérifiez d'DescribeConversionConfigurationabord le résultat).

{ "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 } }