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 :

java.sql.SQLException: read-only


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 14
    Points
    14
    Par défaut java.sql.SQLException: read-only
    Bonjour,

    Je suis en train d'ecrire un programme JAVA pour mettre a jour des table sur une BD oracle9i en passant directement par un ResultSet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        ResultSet.CONCUR_UPDATABLE);
                ResultSet result = stmt
                        .executeQuery("select * from toto");
                result.absolute(1);
                System.out.println(result.getObject(2));
     
                result.updateString(2, "modifié");
                result.updateRow();
    sachant que j'utilise les driver ojdbc1.4.jar j'obtient l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.sql.SQLException: Opération non valide sur un ensemble de résultats de type read-only : updateString
    Est-ce que qq1 voit l'erreur parce que je n'arrive pas à la trouver???!!!
    Merci

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    c'est pas plutôt un problème java ? Enfin, un update sur un select ça ne me parait pas très catholique

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    voici les bouts de code que j'ai récuepere de l'api java de la classe ResultSet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Statement stmt = con.createStatement(
                                          ResultSet.TYPE_SCROLL_INSENSITIVE,
                                          ResultSet.CONCUR_UPDATABLE);
           ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
           // rs will be scrollable, will not show changes made by others,
           // and will be updatable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    rs.absolute(5); // moves the cursor to the fifth row of rs
           rs.updateString("NAME", "AINSWORTH"); // updates the 
              // NAME column of row 5 to be AINSWORTH
           rs.updateRow(); // updates the row in the data source
    ça n'a pas l'air si bizarre que ça, non ? ça l'air meme plutot puissant??? enfin ça m'arrangeait bien de faire ça au lieu de passer par 36000 requetes...qu'en penses-tu ?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    je ne sais pas je ne connais pas le java

    en tout cas, une erreur read-only quand tu fais l'update d'un select ça ne me parait pas anormal

  5. #5
    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
    Sans connaitre du tout java, je suppose qu'il faille faire select du rowid pour pouvoir avoir un enregistrement modifiable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T.A, T.B, T.ROWID FROM TABLE T WHERE ...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 25
    Points : 35
    Points
    35
    Par défaut
    C'est une limitation conue des drivers jdbc oracle, il ne permettent pas de spécifier un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from toto
    pour un resultset updatable il faut détaillr les champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select t.tete, t.zero from toto t
    si une description de la table toto est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> desc toto
     Name                            Null?    Type
     ------------------------------- -------- ----
     ZERO                                     NUMBER
     TETE                                     VARCHAR2(15)
    Plus d'infos dans ... la doc oracle:

    http://download-west.oracle.com/docs/cd/B10501_01/java.920/a96654/resltset.htm#1018253

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Exactement ce qu'il me fallait merci bcp

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/01/2012, 16h17
  2. Réponses: 4
    Dernier message: 25/01/2006, 18h25
  3. Réponses: 5
    Dernier message: 12/12/2005, 13h13
  4. Réponses: 3
    Dernier message: 24/11/2005, 12h24
  5. [JDBC] java.sql.SQLException: Closed Statement
    Par cmoulin dans le forum JDBC
    Réponses: 4
    Dernier message: 03/09/2004, 17h22

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