Au travers de cet article nous allons voir comment se connecter à une base de données Oracle grâce à un programme Cobol. La technique décrite ici s’appuie sur la précompilation Oracle à l’aide de l’utilitaire Pro*COBOL.
Déclaration des variables
L’utilisation de SQLCA permet d’utiliser des variables mises à jour après chaque requête exécutée. Ces variables stockent notamment le code retour, le statut et le message d’erreur. Pour plus d’informations sur les autres variables disponibles il faut se reporter à la documentation officielle de Oracle.
Pour pouvoir être utilisées à l’intérieur d’ordre SQL, les variables Cobol sont à déclarer à l’intérieur d’une section particulière en working du programme.
EXEC SQL BEGIN DECLARE SECTION END-EXEC. 01 ORAUSER PICTURE X(10). 01 ORAPASS PICTURE X(10). 01 ORASERV PICTURE X(10). EXEC SQL END DECLARE SECTION END-EXEC. |
On indique ensuite qu’on souhaite utiliser SQLCA.
EXEC SQL INCLUDE SQLCA END-EXEC. |
Gestion des erreurs
L’instruction WHENEVER permet de gérer les erreurs lors de l’exécution d’une requête. L’utilisation de cette instruction permet de définir le comportement à adopter lorsqu’une erreur ou un avertissement est rencontré lors de l’exécution d’un ordre. Dans cet exemple nous allons exécuter la fonction ORA-ERR qui affichera des informations sur l’origine de l’erreur est terminera l’exécution du programme.
EXEC SQL WHENEVER SQLERROR GO TO ERR-ORA END-EXEC. |
Connexion à la base de donnée
Une fois que toutes la mise en place des outils Oracle est terminée, il est maintenant possible d’utiliser les instructions de connexion du Cobol. Dans un premier on alimente les variables qui vont être utilisées pour la connexion. Ici les identifiants sont entrés directement dans le programme mais il est préférable d’aller les lire depuis un fichier de configuration. La modification des identifiants de connexion à Oracle implique dans cet exemple de modifier le code source et de recompiler le programme.
MOVE "USER" TO ORAUSER. MOVE "PASS" TO ORAPASS. MOVE "ORAIN" TO ORASERV. EXEC SQL CONNECT :ORAUSER IDENTIFIED BY :ORAPASS USING :ORASERV END-EXEC. |
Modification des propriétés de la session Oracle
La modification des propriétés de la session Oracle peuvent être modifiées immédiatement à la suite de la connexion. Cet exemple permet de définir un format de date pour l’exécution des ordres. La nouvelle valeur viendra écraser le paramétrage par défaut défini au niveau du serveur Oracle.
EXEC SQL ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD-HH24.MI.SS' END-EXEC. |
Gestion des erreurs Oracle
En début de programme nous avons indiqué au programme d’exécuter la fonction ERR-ORA en cas d’erreur. Une mise en œuvre simple de cette fonction consiste à afficher les variables qui permettront d’identifier facilement la cause de l’erreur. Ici nous allons afficher : le code retour, le code statut et le libellé de l’erreur.
DISPLAY "Erreur de connexion à Oracle : " SQLERRMC. DISPLAY "Informations supplémentaires : " SQLCODE "/" SQLSTATE. GOBACK. |
Voilà, vous êtes maintenant connectés à Oracle… A vous de jouer pour la suite.
Bonjour,
Et merci pour les bouts de code qui vont bien me servir … dés que j’aurais trouvé l’environnement qui me permettra de saisir du code cobol …
Quel IDE me conseillez-vous ?
Bonne journée
Bonjour,
Je n’utilise pas un IDE, j’édite le code directement dans un éditeur de texte de type vi. Par contre une partie de nos programmes a été écrite avec PACBASE. Mais ce n’est pas réellement un IDE, dans ce cas on utilise un meta-langage qui sera convertit en Cobol avant la compilation.