Tester sa connexion Oracle via jdbc

java-jdbcDans le cadre de votre activité, vous pouvez être amené à tester la connexion à votre base Oracle. Voici donc un exemple pour vous montrer comment vous connecter à la base de données Oracle via un pilote JDBC.

1. Téléchargez le driver JDBC Oracle

Pour télécharger le driver JDBC, une visite sur le site d’oracle s’impose. Vous pouvez télécharger le driver ojdbc6.jar ou ojdbc7.jar. La version 6 fonctionne avec du java 6. La version 7 avec du java 7. Dans mon cas, je souhaite tester ma connexion Oracle dans le cadre de son utilisation avec SAS 9.4. SAS 9.4 utiliser Java 7, je télécharge donc .... (suspense)... ojdbc7.jar 2. Téléchargez la classe OracleJDBC Il s'agit d'un classe toute simple que vous pourrez utiliser/modifier pour tester votre connexion.

Téléchargez le fichier OracleJDBC.java en cliquat sur le bouton ci-dessous :

 

Note : Je ne suis pas développeur java. Donc ..... keep calm si vous saignez des yeux à la lecture de mon code.

3. Compilez cette class java

Pour la compilation, nous allons utiliser le compilateur javac, logique pour compiler un progamme java... Pour la petite histoire, le compilateurutilise un fichier source Java fourni en paramètre, dans notre cas OracleJDBC.java, pour créer un ou plusieurs fichiers contenant le bytecode Java correspondant. Dans mon cas, j'utilse le compilateur fournit avec SAS 9.4 :
SASHome/SASPrivateJavaRuntimeEnvironment/9.4/bin/javac OracleJDBC.java
Vous obtenez alors un fichier OracleJDBC.class

4. Run it

Dernière étape, celle qui nous intéresse, le lancement du programme. La syntaxe est la suivante :
SASHome/SASPrivateJavaRuntimeEnvironment/9.4/jre/bin/java -cp /tmp/ojdbc7.jar:/tmp  OracleJDBC localhost 1521 orcl scott tiger
Les arguments sont les suivants : localhost = Le serveur Oracle 1521 = Le port de connexion à la base oracle orcl = le sid de la base de données scott = le login tiger = le mot de passe   Si la connexion est ok, vous obtenez l'affichage suivant : ORACLE HOST : localhost ORACLE PORT : 1521 ORACLE SID : orcl LOGIN : scott PASSWORD : tiger *** Test de connexion Oracle via JDBC *** jdbc:oracle:thin:@localhost:1521:orcl | login : scott Password : tiger Connexion OK Si la connexion n'est pas possible, vous obtenez l'affichage suivant (par exemple) : ORACLE HOST : localhost ORACLE PORT : 1521 ORACLE SID : orcl LOGIN : scott PASSWORD : tiger *** Test de connexion Oracle via JDBC *** jdbc:oracle:thin:@localhost:1521:orcl | login : scott Password : tiger ERROR : Echec de connexion java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor Notez que vous pouvez obtenir toutes sortes d'erreurs : ERROR : Echec de connexion java.sql.SQLRecoverableException: Erreur d'E/S: Invalid number format for port number at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:215) at OracleJDBC.main(OracleJDBC.java:35) Caused by: oracle.net.ns.NetException: Invalid number format for port number at oracle.net.resolver.AddrResolution.resolveSimple(AddrResolution.java:571) at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:441) at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:594) at oracle.net.ns.NSProtocol.connect(NSProtocol.java:229) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)    

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.