Gros Probleme PL/SQL

Gros Probleme PL/SQL - SQL/NoSQL - Programmation

Marsh Posté le 25-01-2006 à 22:21:46    

Bonjour tout le monde.
 
Voila j'ai un petit probleme. je ne comprend pas ce qui se passe.
 
J'ai un programme java avec du code SQL autrement dit je programme en PL/SQL et je n'arrive pas à compiler.
 
J'utilise Oracle 9i comme SGBD et jdk 1.5 pour java.
Je suis sous windows XP.
 
Lorsque je compile le programme sous NetBeans je n'ai pas de probleme. La compilation et l'execution se font très bien en revanche lorsque je veux executer mon prog sous MsDos, c'est une autre histoire.......
 
Je mets dans mon dossier :
   - Mon prog (Projet2.java)
   - Le driver pour oracle (ojdbc14.jar)
 
J'execute les instructions suivantes :
   - javac Projet2.java >>>>> pas de probleme, ca compile
   - java ojdbc14.jar Projet2.class     OU     java ojdbc14.jar Projet2     >>>> ca me met une erreur à la con.
 
Erreur :  
Exception in thread "main" java.lang.NoClassDefFoundError: ojdbc14/jar
 
 
*****************************
Mon Prog :  
 
import java.sql.*;
import java.io.*;
 
 
class Projet2{
 
  static Connection c=null;
   
  Projet2(String log, String mdp)throws Exception{
    try{

 
      Class.forName("oracle.jdbc.driver.OracleDriver" );
      c=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:MANIF",log,mdp);


    c.setAutoCommit(false);
    }
    catch (SQLException ex){
      while ( ex != null ){
 System.out.println("Msg:"+ex.getMessage()+ex.getErrorCode());
      }
      ex=ex.getNextException();
    }
  }
 
//********************
   
  static boolean verif_client(String nom1, String adresse1)throws Exception{
     
    Statement s=c.createStatement();
    ResultSet rs = s.executeQuery("Select NumCli from CLIENT where NomCli='"+nom1+"' and Adresse='"+adresse1+"' for update" );
    if(rs.next())
      return true;
    else return false;
  }
 
 
  //**********************Nouveau Client************************
  static void nouveau_client(String nom, String adresse){
     
    int numero; String test;    
     
    try{  
      BufferedReader lecture = new BufferedReader(new InputStreamReader(System.in)); //pour le test
      Statement s=c.createStatement();
      s.executeQuery("lock table client in exclusive mode" );
      ResultSet rs = s.executeQuery("Select max(NumCli) nb from client" );
      test=lecture.readLine(); //pour le test
      rs.next();
      numero=rs.getInt("nb" );
      numero=numero+1;
       
      boolean i = s.execute("insert into Client values("+numero+",'"+nom+"','"+adresse+"')" );
      if(!i)
 System.out.println("Ajout dans la table CLIENT réussi" );
      s.close();// !!!
      System.out.println("Connection fermée" );
    }
    catch(Exception e){
      System.out.println("Insertion non réalisée : "+e);
    }
  }
   
  //******Reservation*********
  static void reserve(){
     
    String nom;
    String adresse;
     
    try{
      BufferedReader lecture = new BufferedReader(new InputStreamReader(System.in));
      System.out.println("Donnez votre nom : " );
      nom=lecture.readLine();
      System.out.println("Donnez votre adresse : " );
      adresse=lecture.readLine();
      System.out.println(nom+" "+adresse);
       
      if(verif_client(nom,adresse)==true){}
      else
 nouveau_client(nom,adresse);
      System.out.println("client nouveau" );
       
    }
    catch(Exception e){
      System.out.println("Rentree des données non réalisée : "+e);
    }
  }
   
  //*******MAIN*******

public static void main(String[] args)throws Exception{
    new Projet2("system","mdp" );
    reserve();

  }
}
 
*********************************
Je ne vois pas d'ou cela peut venir.
Si quelqu'un a une idée.....
 
Merci d'avance  
L'doud

Message cité 1 fois
Message édité par ldoud le 25-01-2006 à 22:32:05
Reply

Marsh Posté le 25-01-2006 à 22:21:46   

Reply

Marsh Posté le 25-01-2006 à 22:34:53    

Personne ne veut répondre ??? Aller un petit effort, je suis dans la muise...
 

ldoud a écrit :

Bonjour tout le monde.
 
Voila j'ai un petit probleme. je ne comprend pas ce qui se passe.
 
J'ai un programme java avec du code SQL autrement dit je programme en PL/SQL et je n'arrive pas à compiler.
 
J'utilise Oracle 9i comme SGBD et jdk 1.5 pour java.
Je suis sous windows XP.
 
Lorsque je compile le programme sous NetBeans je n'ai pas de probleme. La compilation et l'execution se font très bien en revanche lorsque je veux executer mon prog sous MsDos, c'est une autre histoire.......
 
Je mets dans mon dossier :
   - Mon prog (Projet2.java)
   - Le driver pour oracle (ojdbc14.jar)
 
J'execute les instructions suivantes :
   - javac Projet2.java >>>>> pas de probleme, ca compile
   - java ojdbc14.jar Projet2.class     OU     java ojdbc14.jar Projet2     >>>> ca me met une erreur à la con.
 
Erreur :  
Exception in thread "main" java.lang.NoClassDefFoundError: ojdbc14/jar
 
 
*****************************
Mon Prog :  
 
import java.sql.*;
import java.io.*;
 
 
class Projet2{
 
  static Connection c=null;
   
  Projet2(String log, String mdp)throws Exception{
    try{

 
      Class.forName("oracle.jdbc.driver.OracleDriver" );
      c=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:MANIF",log,mdp);


    c.setAutoCommit(false);
    }
    catch (SQLException ex){
      while ( ex != null ){
 System.out.println("Msg:"+ex.getMessage()+ex.getErrorCode());
      }
      ex=ex.getNextException();
    }
  }
 
//********************
   
  static boolean verif_client(String nom1, String adresse1)throws Exception{
     
    Statement s=c.createStatement();
    ResultSet rs = s.executeQuery("Select NumCli from CLIENT where NomCli='"+nom1+"' and Adresse='"+adresse1+"' for update" );
    if(rs.next())
      return true;
    else return false;
  }
 
 
  //**********************Nouveau Client************************
  static void nouveau_client(String nom, String adresse){
     
    int numero; String test;    
     
    try{  
      BufferedReader lecture = new BufferedReader(new InputStreamReader(System.in)); //pour le test
      Statement s=c.createStatement();
      s.executeQuery("lock table client in exclusive mode" );
      ResultSet rs = s.executeQuery("Select max(NumCli) nb from client" );
      test=lecture.readLine(); //pour le test
      rs.next();
      numero=rs.getInt("nb" );
      numero=numero+1;
       
      boolean i = s.execute("insert into Client values("+numero+",'"+nom+"','"+adresse+"')" );
      if(!i)
 System.out.println("Ajout dans la table CLIENT réussi" );
      s.close();// !!!
      System.out.println("Connection fermée" );
    }
    catch(Exception e){
      System.out.println("Insertion non réalisée : "+e);
    }
  }
   
  //******Reservation*********
  static void reserve(){
     
    String nom;
    String adresse;
     
    try{
      BufferedReader lecture = new BufferedReader(new InputStreamReader(System.in));
      System.out.println("Donnez votre nom : " );
      nom=lecture.readLine();
      System.out.println("Donnez votre adresse : " );
      adresse=lecture.readLine();
      System.out.println(nom+" "+adresse);
       
      if(verif_client(nom,adresse)==true){}
      else
 nouveau_client(nom,adresse);
      System.out.println("client nouveau" );
       
    }
    catch(Exception e){
      System.out.println("Rentree des données non réalisée : "+e);
    }
  }
   
  //*******MAIN*******

public static void main(String[] args)throws Exception{
    new Projet2("system","mdp" );
    reserve();

  }
}
 
*********************************
Je ne vois pas d'ou cela peut venir.
Si quelqu'un a une idée.....
 
Merci d'avance  
L'doud


Reply

Marsh Posté le 07-02-2006 à 11:31:43    

Vous ne programmez pas en pl/sql mais vous faites appel à des requêtes SQL à travers du java
Le pl/sql c'est du script pour oracle basé effectivement, sur les requêtes sql...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed