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 :

Le schéma suivant illustre le flux de travail suivant :
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.
Lorsqu'une fonction PL/pgSQL (func_processdata) lance une exception, elle invoque une deuxième fonction PL/pgSQL (error_validation).
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.
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.
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é.
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âche | Description | Compétences requises |
---|---|---|
Créez une table dans la base de données compatible avec Amazon Aurora PostgreSQL. | Exécutez la commande PostgreSQL CREATE TABLE
| 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 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 :
NoteSi 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.
| 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