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

Oracle Discussion :

probleme de connection à une base de donnees Oracle via java


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut probleme de connection à une base de donnees Oracle via java
    Salut,
    J'ai un probleme de connection à une base de donnees Oracle via un simple code de java
    ======================
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     [color=red]import java.sql.*;
       public class Exemple1 {
          public static void main (String args[]) {
             Statement stmt = null;
             Connection con=null;
             try {  
    		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                    con = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:GB","scott","tiger");
     
    	} 
                catch (Exception e) { System.out.println(e);        }
       }
    }[/color
    ]
    =================
    Dans mon system :
    • Linux (Fedora core3).
    • Oracle 10g


    Les variables d'environnements sont:
    • ORACLE_HOME=/u01/app/oracle/product/10.1.0/Db_1
    • PATH=$ORACLE_HOME/bin
    • CLASSPATH=$ORACLE_HOME/jdbc/lib/ojdbc14.jar



    L'erreur apres l'execution de pregramme est:
    Exception in thread "main" java.lang.NoClassDefFoundError: while resolving class: oracle.sql.CharacterSet
    at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0)
    at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.5.0.0)
    at _Jv_ResolvePoolEntry(java.lang.Class, int) (/usr/lib/libgcj.so.5.0.0)
    at oracle.jdbc.driver.DBConversion.DBConversion(short, short, short) (Unknown Source)
    at oracle.jdbc.driver.T4CConnection.connect(java.lang.String, java.util.Properties) (Unknown Source)
    at oracle.jdbc.driver.T4CConnection.logon() (Unknown Source)
    .
    .
    .
    j'aimerai bien savoir la solution, je suis vraiment bloqué à ce niveau .
    merci :

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Le code à l'air correct (sauf que la class main doit trapper SQLException

    essayez le code suivant: (qui ressembel beaucoup au votre, je le concède...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    import java.sql.*;
     
    class Bidon
    {
      public static void main (String args [])
           throws SQLException
      {
        // Load the Oracle JDBC driver
        DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
     
        // Connect to the database
        // You must put a database name after the @ sign in the connection URL.
        // You can use either the fully specified SQL*net syntax or a short cut
        // syntax as <host>:<port>:<sid>.  The example uses the short cut syntax.
        String url = "jdbc:oracle:thin:@dlsun511:1721:dbms733";
        String userName = "scott";
        String password = "tiger";
     
        if (args.length > 0) url = args[0];
        if (args.length > 1) userName = args[1];
        if (args.length > 2) password = args[2];
     
        Connection conn =
          DriverManager.getConnection (url, userName, password);
     
        // Create a Statement
        Statement stmt = conn.createStatement ();
     
        // Select the ENAME column from the EMP table
        ResultSet rset = stmt.executeQuery ("select ENAME from EMP");
     
        // Iterate through the result and print the employee names
        while (rset.next ())
          System.out.println (rset.getString (1));
      }
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Salut,
    J'ai essayé ton code, mais il donne la meme erreur, je ponse le probleme est dans la configuration (variables d'environnement ?,...)

    merci

  4. #4
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Est-ce qu'avec ce même environnement l'accès via SQL*Plus fonctionne ?

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    On dirait qu'il ne trouve pas toutes les classes...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je pense qu'il marche avec sql plus
    [oracle@localhost source]$ sqlplus /nolog

    SQL*Plus: Release 10.1.0.3.0 - Production on Tue Mar 15 12:11:17 2005

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

    SQL> connect /as sysdba
    Connected.
    SQL> select * from product_component_version;

    PRODUCT VERSION
    --------------------------------------------------------------------------------
    NLSRTL 10.1.0.3.0
    Oracle Database 10g Enterprise Edition 10.1.0.3.0
    PL/SQL 10.1.0.3.0
    TNS for Linux: 10.1.0.3.0

  7. #7
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    renseignez jdk dans lesvariables d'environnement PATH et CLASSPATH

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    comment je peut modifier mes variables avec jdk?

  9. #9
    Membre actif Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Points : 234
    Points
    234
    Par défaut
    Attention il existe certainement plusieurs JDK sur votre machine, si c'est une install 10g elle a son propre jdk sous ORACLE_HOME

  10. #10
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    A l'oeil comme ça je dirais que ton Driver est incomplet. Essayes-en un autre pour voir ?
    Sinon ouvre ton .jar (comme un zip) et regarde dans le dossier oracle/sql si la classe CharacterSet.class existe bien. Si oui c'est un problème de path (mais bon pour le trouver...) si non c'est que le Driver n'est pas bon/incomplet.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci , j'ai trouvé la solution de mon probleme,
    j'ai reinstallé les packages de jdbc "ojdbc14.jar", "orai18n.jar" puis j'ai ajouté à CLASSPATH
    les deux packages
    Merci encore

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

Discussions similaires

  1. manipulation d'une base de donnees oracle via datagrid
    Par navorinco dans le forum ASP.NET
    Réponses: 23
    Dernier message: 23/08/2010, 11h24
  2. Se connecter à une base de donnée Oracle par java
    Par ayoubkira dans le forum JDBC
    Réponses: 6
    Dernier message: 04/08/2010, 17h20
  3. connecter a une base de donnee oracle via java
    Par papousou dans le forum JDBC
    Réponses: 2
    Dernier message: 15/07/2009, 15h18
  4. Accéder a une base de donnee oracle via une url?
    Par Chikatilo dans le forum Interfaces de programmation
    Réponses: 10
    Dernier message: 22/05/2008, 15h56
  5. [VB6]Connection à une base de données Oracle
    Par Zoilus dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 08/04/2004, 10h51

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