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 applications existantes d'Oracle Pro*C vers ECPG
Créée par Sai Parthasaradhi (AWS) et Mahesh Balumuri (AWS)
Environnement : PoC ou pilote | Source : Oracle | Cible : PostgreSQL |
Type R : Ré-architecte | Charge de travail : Oracle | Technologies : migration ; bases de données |
Récapitulatif
La plupart des applications existantes qui intègrent du code SQL utilisent le précompilateur Oracle Pro*C pour accéder à la base de données. Lorsque vous migrez ces bases de données Oracle vers Amazon Relational Database Service (Amazon RDS) pour PostgreSQL ou Amazon Aurora PostgreSQL Compatible Edition, vous devez convertir le code de votre application dans un format compatible avec le précompilateur de PostgreSQL, appelé ECPG. Ce modèle décrit comment convertir le code Oracle Pro*C en son équivalent dans PostgreSQL ECPG.
Pour plus d'informations sur Pro*C, consultez la documentation Oracle
Conditions préalables et limitations
Prérequis
Un compte AWS actif
Une base de données compatible avec Amazon RDS for PostgreSQL ou Aurora PostgreSQL
Une base de données Oracle exécutée sur site
Outils
Les packages PostgreSQL répertoriés dans la section suivante.
AWS CLI — L'interface de ligne de commande AWS (AWS CLI) est un outil open source permettant d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande. Avec une configuration minimale, vous pouvez exécuter des commandes de l'interface de ligne de commande AWS qui mettent en œuvre des fonctionnalités équivalentes à celles fournies par la console de gestion AWS basée sur un navigateur à partir d'une invite de commande.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Installez les packages PostgreSQL. | Installez les packages PostgreSQL requis à l'aide des commandes suivantes.
| Développeur d'applications, DevOps ingénieur |
Installez les fichiers d'en-tête et les bibliothèques. | Installez le
Pour l'environnement de développement uniquement, exécutez également les commandes suivantes.
| Développeur d'applications, DevOps ingénieur |
Configurez la variable de chemin d'environnement. | Définissez le chemin d'environnement pour les bibliothèques clientes PostgreSQL.
| Développeur d'applications, DevOps ingénieur |
Installez des logiciels supplémentaires si nécessaire. | Si nécessaire, installez pgLoader en remplacement de SQL*Loader dans Oracle.
Si vous appelez des applications Java à partir de modules Pro*C, installez Java.
Installez ant pour compiler le code Java.
| Développeur d'applications, DevOps ingénieur |
Installez l'AWS CLI. | Installez l'interface de ligne de commande AWS pour exécuter des commandes afin d'interagir avec les services AWS tels qu'AWS Secrets Manager et Amazon Simple Storage Service (Amazon S3) depuis vos applications.
| Développeur d'applications, DevOps ingénieur |
Identifiez les programmes à convertir. | Identifiez les applications que vous souhaitez convertir de Pro*C en ECPG. | Développeur d'applications, propriétaire de l'application |
Tâche | Description | Compétences requises |
---|---|---|
Supprimez les en-têtes indésirables. | Supprimez | Propriétaire de l'application, développeur de l'application |
Mettez à jour les déclarations de variables. | Ajoutez Supprimez les
| Développeur d'applications, propriétaire de l'application |
Mettez à jour la fonctionnalité ROWNUM. | La Code Pro*C :
Code ECPG :
| Développeur d'applications, propriétaire de l'application |
Mettez à jour les paramètres de la fonction pour utiliser des variables d'alias. | Dans PostgreSQL, les paramètres des fonctions ne peuvent pas être utilisés comme variables hôtes. Remplacez-les en utilisant une variable d'alias. Code Pro*C :
Code ECPG :
| Développeur d'applications, propriétaire de l'application |
Mettez à jour les types de structure. | Définissez les Code Pro*C : Fichier d'en-tête (
Code ECPG : Fichier d'en-tête (
Fichier Pro*C ()
Fichier ECPG ()
| Développeur d'applications, propriétaire de l'application |
Modifiez la logique à récupérer à partir des curseurs. | Pour récupérer plusieurs lignes à partir de curseurs à l'aide de variables de tableau, modifiez le code à utiliser. Code Pro*C :
Code ECPG :
| Développeur d'applications, propriétaire de l'application |
Modifiez les appels de packages qui n'ont pas de valeur de retour. | Les fonctions de package Oracle qui n'ont pas de valeurs de retour doivent être appelées avec une variable indicatrice. Si votre application inclut plusieurs fonctions portant le même nom ou si les fonctions de type inconnu génèrent des erreurs d'exécution, transformez les valeurs en types de données. Code Pro*C :
Code ECPG :
| Développeur d'applications, propriétaire de l'application |
Réécrivez les variables SQL_CURSOR. | Réécrivez la Code Pro*C :
Code ECPG :
| Développeur d'applications, propriétaire de l'application |
Appliquez des modèles de migration courants. |
| Développeur d'applications, propriétaire de l'application |
Activez le débogage, si nécessaire. | Pour exécuter le programme ECPG en mode debug, ajoutez la commande suivante dans le bloc fonctionnel principal.
| Développeur d'applications, propriétaire de l'application |
Tâche | Description | Compétences requises |
---|---|---|
Créez un fichier exécutable pour ECPG. | Si vous avez nommé un fichier source Embedded SQL C
| Développeur d'applications, propriétaire de l'application |
Créez un fichier make pour la compilation. | Créez un fichier make pour compiler le programme ECPG, comme indiqué dans l'exemple de fichier suivant.
| Développeur d'applications, propriétaire de l'application |
Tâche | Description | Compétences requises |
---|---|---|
Testez le code. | Testez le code d'application converti pour vous assurer qu'il fonctionne correctement. | Développeur d'applications, propriétaire de l'application, ingénieur de test |
Ressources connexes
ECPG - SQL intégré en C (documentation
PostgreSQL) Gestion des erreurs
(documentation PostgreSQL) Pourquoi utiliser le précompilateur Oracle Pro*C/C++ (
documentation Oracle)
Informations supplémentaires
PostgreSQL possède un précompilateur SQL intégré, ECPG, équivalent au précompilateur Oracle Pro*C. ECPG convertit les programmes C contenant des instructions SQL intégrées en code C standard en remplaçant les appels SQL par des appels de fonction spéciaux. Les fichiers de sortie peuvent ensuite être traités avec n'importe quelle chaîne d'outils de compilation C.
Fichiers d'entrée et de sortie
ECPG convertit chaque fichier d'entrée que vous spécifiez sur la ligne de commande en fichier de sortie C correspondant. Si le nom d'un fichier d'entrée n'a pas d'extension de fichier, .pgc est supposé. L'extension du fichier est remplacée par .c
pour construire le nom du fichier de sortie. Cependant, vous pouvez remplacer le nom du fichier de sortie par défaut en utilisant l'-o
option.
Si vous utilisez un tiret (-
) comme nom de fichier d'entrée, ECPG lit le programme depuis l'entrée standard et écrit sur la sortie standard, sauf si vous le remplacez en utilisant l'-o
option.
Fichiers d'en-tête
Lorsque le compilateur PostgreSQL compile les fichiers de code C prétraités, il recherche les fichiers d'en-tête ECPG dans le répertoire PostgreSQL. include
Par conséquent, vous devrez peut-être utiliser l'-I
option pour pointer le compilateur vers le bon répertoire (par exemple,-I/usr/local/pgsql/include
).
Bibliothèques
Les programmes qui utilisent le code C avec Embedded SQL doivent être liés à la libecpg
bibliothèque. Par exemple, vous pouvez utiliser les options -L/usr/local/pgsql/lib -lecpg
de l'éditeur de liens.
Les applications ECPG converties appellent des fonctions de la libpq
bibliothèque via la bibliothèque Embedded SQL (ecpglib
) et communiquent avec le serveur PostgreSQL en utilisant le protocole frontend/backend standard.