Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Migrer les codes d'erreur de la base de données Oracle vers une base de données compatible avec Amazon Aurora PostgreSQL - Recommandations AWS

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.

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.

Migrer les codes d'erreur de la base de données Oracle vers une base de données compatible avec Amazon Aurora PostgreSQL

Créée par Sai Parthasaradhi (AWS) et Veeranjaneyulu Grandhi (AWS)

Récapitulatif

Ce modèle montre comment migrer les codes d'erreur de base de données Oracle vers une base de données Amazon Aurora PostgreSQL Edition compatible à l'aide d'une table de métadonnées prédéfinie.

Les codes d'erreur de base de données Oracle ne sont pas toujours associés à un code d'erreur PostgreSQL correspondant. Cette différence de codes d'erreur peut rendre difficile la configuration de la logique de traitement des procédures ou des fonctions dans l'architecture PostgreSQL cible.

Vous pouvez simplifier le processus en stockant les codes d'erreur de base de données source et cible pertinents pour votre programme PL/pgSQL dans une table de métadonnées. Configurez ensuite la table pour signaler les codes d'erreur valides de la base de données Oracle et les mapper à leurs équivalents PostgreSQL avant de poursuivre avec la logique de processus restante. Si le code d'erreur de la base de données Oracle ne figure pas dans la table de métadonnées, le processus se termine à une exception près. Vous pouvez ensuite examiner manuellement les détails de l'erreur et ajouter le nouveau code d'erreur au tableau si votre programme l'exige.

Grâce à cette configuration, votre base de données compatible avec Amazon Aurora PostgreSQL peut gérer les erreurs de la même manière que votre base de données Oracle source.

Note

La configuration d'une base de données PostgreSQL pour gérer correctement les codes d'erreur de base de données Oracle nécessite généralement de modifier le code de base de données et d'application.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif

  • Une base de données Oracle source avec des services d'instance et d'écoute opérationnels

  • Un cluster compatible avec Amazon Aurora PostgreSQL qui est opérationnel

  • Connaissance d'Oracle Database

  • Connaissance des bases de données PostgreSQL

Architecture

Le schéma suivant montre un exemple de flux de travail de base de données compatible avec Amazon Aurora PostgreSQL pour la validation et le traitement des codes d'erreur relatifs aux données :

Validation et gestion des codes d'erreur de données pour une base de données compatible Aurora PostgreSQL.

Le schéma suivant illustre le flux de travail suivant :

  1. Une table contient les codes d'erreur et les classifications de la base de données Oracle ainsi que leurs codes d'erreur et classifications PostgreSQL équivalents. La table inclut une colonne valid_error qui classe si des codes d'erreur spécifiques prédéfinis sont valides ou non.

  2. Lorsqu'une fonction PL/pgSQL (func_processdata) lance une exception, elle invoque une deuxième fonction PL/pgSQL (error_validation).

  3. La fonction error_validation accepte le code d'erreur de la base de données Oracle comme argument d'entrée. Ensuite, la fonction compare le code d'erreur entrant au tableau pour voir si l'erreur est incluse dans le tableau.

  4. Si le code d'erreur de la base de données Oracle est inclus dans la table, la fonction error_validation renvoie une valeur VRAIE et la logique du processus se poursuit. Si le code d'erreur n'est pas inclus dans le tableau, la fonction renvoie une valeur FALSE et la logique du processus s'arrête avec une exception.

  5. Lorsque la fonction renvoie une valeur FAUSSE, les détails de l'erreur sont examinés manuellement par le responsable fonctionnel de l'application afin de déterminer sa validité.

  6. Le nouveau code d'erreur est ensuite ajouté manuellement au tableau ou non. Si le code d'erreur est valide et ajouté à la table, la fonction error_validation renvoie une valeur TRUE la prochaine fois que l'exception se produira. Si le code d'erreur n'est pas valide et que le processus doit échouer lorsque l'exception se produit, le code d'erreur n'est pas ajouté au tableau.

Pile technologique

  • Amazon Aurora PostgreSQL

  • pgAdmin

  • Oracle SQL Developer

Outils

  • Amazon Aurora PostgreSQL Compatible Edition est un moteur de base de données relationnelle entièrement géré et compatible ACID qui vous aide à configurer, exploiter et dimensionner les déploiements PostgreSQL.

  • pgAdmin est un outil d'administration et de développement open source pour PostgreSQL. Il fournit une interface graphique qui simplifie la création, la maintenance et l'utilisation des objets de base de données.

  • Oracle SQL Developer est un environnement de développement intégré gratuit qui simplifie le développement et la gestion d'Oracle Database dans les déploiements traditionnels et dans le cloud.

Épopées

TâcheDescriptionCompétences requises

Créez une table dans la base de données compatible avec Amazon Aurora PostgreSQL.

Exécutez la commande PostgreSQL CREATE TABLE suivante :

( source_error_code numeric NOT NULL, target_error_code character varying NOT NULL, valid_error character varying(1) NOT NULL );
Développeur PostgreSQL, Oracle, RDS/Aurora pour PostgreSQL

Ajoutez les codes d'erreur PostgreSQL et les codes d'erreur de base de données Oracle correspondants dans le tableau.

Exécutez la commande PostgreSQL INSERT pour ajouter les valeurs de code d'erreur requises à la table error_codes.

Les codes d'erreur PostgreSQL doivent utiliser le type de données à caractère variable (valeur SQLSTATE). Les codes d'erreur Oracle doivent utiliser le type de données numérique (valeur SQLCODE).

Exemple d'instructions Insérer :

insert into error_codes values (-1817,'22007','Y'); insert into error_codes values (-1816,'22007','Y'); insert into error_codes values (-3114,'08006','N');
Note

Si vous détectez des exceptions de connectivité de base de données Java (JDBC) spécifiques à Oracle, vous devez les remplacer par des exceptions génériques entre bases de données ou passer à des exceptions spécifiques à PostgreSQL.

Développeur PostgreSQL, Oracle, RDS/Aurora pour PostgreSQL

Créez une fonction PL/pgSQL pour valider les codes d'erreur.

Créez une fonction PL/pgSQL en exécutant la commande PostgreSQL CREATE FUNCTION. Assurez-vous que la fonction effectue les opérations suivantes :

  • Accepte les codes d'erreur Oracle émis par un programme.

  • Vérifie si des codes d'erreur sont présents dans la table error_codes.

  • Renvoie une valeur TRUE ou FALSE, selon que le code d'erreur est présent ou non dans la table de métadonnées.

Développeur PostgreSQL, Oracle, RDS/Aurora pour PostgreSQL

Vérifiez manuellement les nouveaux codes d'erreur tels qu'ils sont enregistrés par la fonction PL/pgSQL.

Vérifiez manuellement les nouveaux codes d'erreur.

Si un nouveau code d'erreur est valide pour votre cas d'utilisation, ajoutez-le à la table error_codes en exécutant la commande PostgreSQL INSERT.

-ou-

Si un nouveau code d'erreur n'est pas valide pour votre cas d'utilisation, ne l'ajoutez pas au tableau. La logique du processus continuera à échouer et se terminera, sauf si l'erreur se produit.

Développeur PostgreSQL, Oracle, RDS/Aurora pour PostgreSQL

Migrez les codes d'erreur de la base de données Oracle vers votre base de données compatible avec Amazon Aurora PostgreSQL

TâcheDescriptionCompétences requises

Créez une table dans la base de données compatible avec Amazon Aurora PostgreSQL.

Exécutez la commande PostgreSQL CREATE TABLE suivante :

( source_error_code numeric NOT NULL, target_error_code character varying NOT NULL, valid_error character varying(1) NOT NULL );
Développeur PostgreSQL, Oracle, RDS/Aurora pour PostgreSQL

Ajoutez les codes d'erreur PostgreSQL et les codes d'erreur de base de données Oracle correspondants dans le tableau.

Exécutez la commande PostgreSQL INSERT pour ajouter les valeurs de code d'erreur requises à la table error_codes.

Les codes d'erreur PostgreSQL doivent utiliser le type de données à caractère variable (valeur SQLSTATE). Les codes d'erreur Oracle doivent utiliser le type de données numérique (valeur SQLCODE).

Exemple d'instructions Insérer :

insert into error_codes values (-1817,'22007','Y'); insert into error_codes values (-1816,'22007','Y'); insert into error_codes values (-3114,'08006','N');
Note

Si vous détectez des exceptions de connectivité de base de données Java (JDBC) spécifiques à Oracle, vous devez les remplacer par des exceptions génériques entre bases de données ou passer à des exceptions spécifiques à PostgreSQL.

Développeur PostgreSQL, Oracle, RDS/Aurora pour PostgreSQL

Créez une fonction PL/pgSQL pour valider les codes d'erreur.

Créez une fonction PL/pgSQL en exécutant la commande PostgreSQL CREATE FUNCTION. Assurez-vous que la fonction effectue les opérations suivantes :

  • Accepte les codes d'erreur Oracle émis par un programme.

  • Vérifie si des codes d'erreur sont présents dans la table error_codes.

  • Renvoie une valeur TRUE ou FALSE, selon que le code d'erreur est présent ou non dans la table de métadonnées.

Développeur PostgreSQL, Oracle, RDS/Aurora pour PostgreSQL

Vérifiez manuellement les nouveaux codes d'erreur tels qu'ils sont enregistrés par la fonction PL/pgSQL.

Vérifiez manuellement les nouveaux codes d'erreur.

Si un nouveau code d'erreur est valide pour votre cas d'utilisation, ajoutez-le à la table error_codes en exécutant la commande PostgreSQL INSERT.

-ou-

Si un nouveau code d'erreur n'est pas valide pour votre cas d'utilisation, ne l'ajoutez pas au tableau. La logique du processus continuera à échouer et se terminera, sauf si l'erreur se produit.

Développeur PostgreSQL, Oracle, RDS/Aurora pour PostgreSQL

Ressources connexes

Annexe A. Codes d'erreur PostgreSQL (documentation PostgreSQL)

Messages d'erreur de base de données (documentation Oracle Database)

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.