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 :

Ora-01009


Sujet :

Oracle

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut Ora-01009
    Bonjour , voici ma requete sous java et l'erreur me dit: Paramètre obligatoire absent.

    select distinct LAST_STATUT from elements WHERE (nom='sw2524bc69_1')

    Une idée sur la solution ?

    Voici mon code :
    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
     
    String req="SELECT DISTINCT LAST_STATUT from elements WHERE nom='"+element+"'";
     konsol(req);
       int stat=0;
     
    try
       {
       DataBase db = new DataBase(2,req);
        while(db.rs.next())    
         {  
          stat=db.rs.getInt("LAST_STATUT");
          System.out.println("Lecture...");
         }
          if(db.connection!=null)
           {
           konsol("connexion active");
         db.connection.close();
           }
       }
       catch(SQLException sqle)
        {
          System.out.println("Erreur SQL : "+sqle);
        }
          catch(Exception e)
          {
           System.out.println(e);
           e.printStackTrace();
          }
    et la classe DataBase :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    package Historique;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class DataBase {
     
     
     String driver = "oracle.jdbc.driver.OracleDriver";
     String login = "XXXX";
     String password = "XXXX";
     String url =  "XXXX";
     protected Connection connection = null;
     Statement stmt;
     protected ResultSet rs;
     short persoID;
     String[] resultat;
     protected int stat;
     protected long seuil;
     
     public DataBase(int select, String requete)
     {
      try{
          Class.forName(driver);
          connection = DriverManager.getConnection(url,login,password);         
          stmt = connection.createStatement();
     
          switch(select)
          {
          case 1: this.writeBDD(requete);break;
          case 2: this.readBDD(requete);break;
          }
     
          System.out.println("la");
       }
       catch(ClassNotFoundException cnfe){
          System.out.println("Driver introuvable : ");
          cnfe.printStackTrace();
       }
       catch(SQLException sqle){
         System.out.println("Erreur SQL : "+sqle);
          //Cf. Comment gérer les erreurs ?
       }
       catch(Exception e){
          System.out.println("Autre erreur : ");
          e.printStackTrace();
       }
     
     }
    /*
    * Insertion des donnéees
    */
    public void writeBDD(String requete)
     {
        try
        {
         stmt.executeUpdate(requete); 
         System.out.println("Requete executée");
         String commit = "COMMIT";
         stmt.executeUpdate(commit);
         System.out.println("Requete validée");
         if(connection!=null)
         {
       connection.close();
         }
        }
        catch(SQLException sqle){
         System.out.println("Erreur SQL : "+sqle);
       }
     }
     
    /*
     * Selection des données
     */
    public void readBDD(String vue)
     {
     
      try
      { 
       rs = stmt.executeQuery(vue);
       System.out.println("Requete executée");  
      }
      catch(SQLException sqle){
         System.out.println("Erreur SQL : "+sqle);
       }
     
     }
    }
    Remarquez que je commit et ferme la connexion uniquement pour une lecture dans ma classe principale.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    D'après http://forum.java.sun.com/thread.jsp...ssageID=416108, il faudrait supprimer les parenthèses de la clause WHERE.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    Toujours pareil

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    D'après Metalink, il y aussi un bug avec le JDBC thin driver 8.1.6: s'il ya un retour chariot dans le texte SQL: dans ce cas il faudrait ajouter des espaces avant et après.

    Vérifiez aussi que le texte SQL de la requête n'est pas aussi tronqué.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    Voila ca marche , j'ai deplacé mon COMMIT !
    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
    try
     {
     DataBase db = new DataBase(2,requet);
      while(db.rs.next())    
       {  
        seuil=db.rs.getLong("SEUIL");
        System.out.println("Lecture...");
       }
      String commit = "COMMIT";
      db.rs = db.stmt.executeQuery(commit);
      System.out.println("Requete validée");
        if(db.connection!=null)
         {
         konsol("connexion active");
       db.connection.close();
         }
     }
     catch(SQLException sqle)
      {
        System.out.println("Erreur SQL : "+sqle);
      }
        catch(Exception e)
        {
         System.out.println(e);
         e.printStackTrace();
        }

Discussions similaires

  1. ora-00604 ora-01009 Forms builder + vista
    Par princetn dans le forum Forms
    Réponses: 5
    Dernier message: 08/08/2007, 14h16
  2. [Sql]ORA-01009
    Par diegodlv dans le forum Oracle
    Réponses: 8
    Dernier message: 19/06/2006, 21h17
  3. erreur "ORA-22905" lors de l'execution d'un requet
    Par benji999 dans le forum Administration
    Réponses: 26
    Dernier message: 14/04/2004, 11h47
  4. Réponses: 14
    Dernier message: 02/04/2004, 14h33
  5. Oracle ORA-00020 : maximum de processus
    Par Lisou dans le forum Administration
    Réponses: 5
    Dernier message: 22/03/2004, 16h27

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