Oracle et le C 1ere Partie : installation du client Oracle 11 sous Ubuntu 12.10

Dans cette série d’articles on va voir comment on peut interagir avec Oracle en utilisant le doux langage C :).
Dans cette première partie on va mettre en place notre environnement de développement en installant les différents composants nécessaires a un poste client Ubuntu 12.10 (32 bits) pour accéder a un serveur Oracle (Je note au passage que Oracle au contraire d’autres éditeurs que nous verrons par la suite, mets a disposition des développeurs Linux 32 et 64 bits tous les outils nécessaires pour développer des applications Oracle sous Linux).

Commencer par récupérer tout ce qu’il faut a partir d’ici :

Oracle linux softs

Oracle distribue les packages dont nous avons besoin sous forme de RPMs, on aura donc besoin d’installer alien qui permet de passer d’un RPM a un package deb.

Les packages a télécharger sont :

– oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

– oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm

– oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.i386.rpm

– oracle-instantclient11.2-precomp-11.2.0.3.0-1.i386.rpm.

Une fois qu’on a tout ça, on commence les installs :

sudo apt-get install alien
sudo alien -k oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
sudo dpkg -i oracle-instantclient11.2-basic_11.2.0.3.0-1_i386.deb
sudo alien -k oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm
sudo dpkg -i oracle-instantclient11.2-devel_11.2.0.3.0-1_i386.deb
sudo alien -k oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.i386.rpm
sudo dpkg -i oracle-instantclient11.2-sqlplus_11.2.0.3.0-1_i386.deb
sudo alien -k oracle-instantclient11.2-precomp-11.2.0.3.0-1.i386.rpm
sudo dpkg -i oracle-instantclient11.2-precomp_11.2.0.3.0-1_i386.deb

Vous pouvez ensuite ajouter ces lignes dans le fichier ~/.bashrc :

export ORACLE_HOME=/usr/lib/oracle/11.2/client
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TNS_ADMIN=/usr/lib/oracle/11.2/client/network/admin

On crée ensuite le fichier de connexion a notre serveur tnsnames.ora (les commandes suivantes nécessitent les droits sudo):

cd $ORACLE_HOME
mkdir -p network/admin
cd $ORACLE_HOME/network/admin

Ajouter ensuite dans tnsnames.ora les lignes qui correspondent a votre serveur, pour moi ca ressemble a ça :

TOCORACL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tcoServer)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TOCORACL)
)
)

tcoServer = nom du serveur Oracle, vous pouvez aussi mettre une adresse IP
SERVICE_NAME = nom du service coté serveur (vous pouvez le récupérer coté serveur avec la commande : lsnrctl status).

Pour avoir des traces et des logs des connexions Oracle coté client, on crée les répertoires qui vont bien (n’oubliez pas de passer par sudo ou root) :

cd $ORACLE_HOME
mkdir -p log/diag/clients
cd log/diag
chmod 777 clients

Les logs pour chaque user seront dans le répertoire : /usr/lib/oracle/11.2/client/log/diag/clients/user_VotreLogin/host_xxxxxx/trace.

On peut maintenant tester la connectivité avec la commande sqlplus :

sqlplus hr/human@TOCORACL # Ici on veut se connecter au service "TOCORACL" (voir tnsnames.ora) avec le user "hr" et le mot de passe "human"

A ce stade si tout se passe bien, on aura le prompt de sqlplus et on peut faire des requêtes en base, par exemple lister les tables :

toc@tocNewServer:/usr/lib/oracle/11.2/client/log/diag/clients/user_toc/host_607040588_80/trace$ sqlplus hr/human@TOCORACL

SQL*Plus: Release 11.2.0.3.0 Production on Fri Jun 14 20:44:35 2013

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select OBJECT_NAME from user_objects where OBJECT_TYPE = 'TABLE';

OBJECT_NAME
--------------------------------------------------------------------------------
COUNTRIES
DEPARTMENTS
EMPLOYEES
JOBS
JOB_HISTORY
LOCATIONS
REGIONS

7 rows selected.

SQL>

La prochaine fois on verra comment utiliser le PRO*C pour faire des requêtes dans une base Oracle.

Publicité

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s