2013-04-06 4 views
0

Il existe de nombreuses questions liées à ce sujet, mais je n'ai pas trouvé de solution à mon problème. J'ai une table de "produits" que j'essaye de mettre à jour dans netbeans. Les instructions SQL travaille en dev SQL, et j'ai revérifié ma connexion, etc.exécution d'une instruction de mise à jour SQL dans java

update products 
set pvolume = 2, pprice = 15 
where productid = 3; 

sortie: 1 lignes mises à jour.

mais s'exécutant dans netbeans, il ne s'exécutera pas. Si j'ai manqué un petit problème de syntaxe, je m'excuse, mais j'ai vraiment besoin d'aide avec cette méthode.

public boolean editProduct(int ID, String name, int volume, int quantity, String description, int price) { 
    boolean success = false; 
    Connection con = ConnectionTools.getInstance().getCurrentConnection(); 
    String SQLString1 = "UPDATE products " 
         + "SET pname = ?, " 
         + "pvolume = ?, " 
         + "pquantity = ?, " 
         + "pdescription = ?, " 
         + "pprice = ? " 
         + "WHERE productID = ?"; 
    PreparedStatement statement = null; 
    try { 
     statement = con.prepareStatement(SQLString1); 
     statement.setString(1, name); 
     statement.setInt(2,volume); 
     statement.setInt(3, quantity); 
     statement.setString(4, description); 
     statement.setInt(5, price); 
     statement.setInt(6, ID); 
     statement.executeUpdate(); 
     success = true; 
    }catch (Exception e){ 
     System.out.println("Insertion error!"); 
     System.out.println(e.getMessage()); 
    }finally { 
     try { 
      statement.close(); 
     } catch (SQLException e) { 
      System.out.println("Statement close error!"); 
      System.out.println(e.getMessage()); 
     } 
    } 
    return success; 
} 

Courir à travers le débogage, il semble courir à travers l'essayer dans la mesure du statement.setInt (6, ID) mais n'exécute pas. Voici la sortie:

Erreur d'insertion! ORA-00971: mot clé SET absent

Toute aide ou conseil serait apprécié! Merci

Répondre

0

Vous devez utiliser des parenthèses: update products set (pvolume = 2, pprice = 15) where productid = 3

+0

Les parenthèses sont entièrement facultatives. Voir la clause update-set dans la documentation: http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10008.htm#i2126876 –

+0

toujours attraper l'exception avec les crochets dès qu'il essaie d'exécuter . d'ailleurs sans parenthèses cela fonctionne bien dans SQL dev ...? – mcabe0131

Questions connexes