IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Accès à Oracle en local avec OCI


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Points : 88
    Points
    88
    Par défaut Accès à Oracle en local avec OCI
    Bonjour,

    J'ai une base de données sous Oracle Express Edition 10g. J'aimerais trouver comment y accéder (requêtes de toutes sortes) via un code Java.

    Après des recherches sur le net, j'ai trouvé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import oracle.jdbc.*;
    Class.forName("oracle.jdbc.driver.OracleDriver");
    DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());   
    Connection con=DriverManager.getConnection("jdbc:oracle:oci8:@XE", "moi","mdp");
    Les logs sont corrects, ma base s'appelle bien XE (Oracle Express Edition oblige).

    Pourtant, je reçois l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Exception in thread "main" java.lang.UnsatisfiedLinkError: oracle.jdbc.driver.T2CConnection.t2cCreateState([BI[BI[BI[BI[BISI[S[B[BZ)I
    	at oracle.jdbc.driver.T2CConnection.t2cCreateState(Native Method)
    	at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:338)
    	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:508)
    	at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:133)
    	at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:53)
    	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at texte.main(texte.java:62)
    La ligne 62 est celle où je déclasse con. J'utilise OCI car il parait que c'est plus efficace pour une application, même si je m'en fiche un peu. Cela dit, si je mets la ligne de connexion en mode thin, il pédale bien 5sec pour me renvoyer une erreur, donc autant rester en OCI. Ceci dit, si la base de donnée devient distante, à quel moment je donne son adresse à OCI ?

    Quelqu'un aurait une idée ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Le driver OCI est bien plus lent que le driver thin en java (pour une vague histoire de lourdeur d'implémentation), aucun intérêt pour 95% des applis et encore je suis gentil...
    De plus le thi t'évite d'avoir à installer le client oracle sur ta bécane et de configurer tout le bordel qui va avec (tnsnames & cie).

    Voici une chaine de connexion correcte pour se connecter sous XE avec le driver thin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:oracle:thin:@localhost:1521:XE
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Points : 88
    Points
    88
    Par défaut
    Ah, bon, très bien.

    Avec cette chaîne de connexion ça marche très bien, merci. Je pense que je m'étais trompé dans le numéro du port.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    J'ai le même message d'erreur en exécutant mon programme avec le driver oci d'oracle. Avant j'ai utilisé thin et ça marchait bien.
    J'ai décidé après d'utiliser oci et j'ai ce msg d'erreur.
    J'utilise la version complète d'oracle 10g avec netbeans pour mon programme.

    Est que vous une idee sur l'origine de cette erreur?

    Merci d'avance pour votre réponse.

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Pour des raisons de performance, il est fortement déconseillé d'utiliser le driver oci...

    Quant à l'erreur: le client oracle correspondant à votre version de la base est il bien installé et le tnsnames.ora correctement rempli?
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Désolée pour le retard dans ma réponse.

    Pour les performances je sais bien qu'il est moins rapide, mais j'en ai vraiment besoin pour terminer mes mesures. Avant j'ai utilisé thin et j'ai eu une erreur de style (java.sql.SQLException: Il n'y a plus de données à lire dans le socket). J'ai lu sur les forums et parlent tous de la migration vers oci.

    Pour mon client je pense qu'il est bien installé et correspond bien à ma base. Pour le fichier tnsnames.ora je crois qu'il est bien rempli: il y a bien mon numéro de port, mon service name mais aucune information en relation avec oci

    Franchement je sais pas trop qu'est ce qu'il devrait être dans tnsnames.ora!!

    Merci pour votre réponse.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    une autre question SVP c'est quoi le "oci8" dans la chaine de connexion? le 8 c le numéro de version d'Oracle ou quoi??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Oracle] accés a oracle 10g express avec php
    Par restart dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 05/01/2010, 06h57
  2. base oracle en local avec php pour langage
    Par hpl76 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/03/2008, 09h23
  3. [Source C] Librairie ISO C90 d'accès à Oracle (Encapsulation OCI)
    Par Vincent Rogier dans le forum Mon programme
    Réponses: 4
    Dernier message: 26/11/2007, 20h58
  4. acce oracle avec vb.net
    Par khayate dans le forum Accès aux données
    Réponses: 1
    Dernier message: 09/05/2007, 17h58
  5. [Sécurité] probleme d'acces en reseau local avec OPENDIR()
    Par babycracker dans le forum Langage
    Réponses: 3
    Dernier message: 28/09/2005, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo