J'écris un programme Java/Perl combinant des fichiers XML dans une base de données SQL Oracle. Il y a deux tables dans la base de données - une qui contient les données des fichiers XML et une autre qui contient des informations sur les fichiers eux-mêmes (nom du fichier, heure de création, etc.). Fondamentalement, lorsqu'un nouveau fichier XML arrive, le programme Java vérifie s'il a déjà été analysé ou partiellement analysé. Si c'est le cas, il modifie la colonne STATUS
dans la table filestatus de 'bon' à 'mauvais' pour cet ID de fichier en utilisant UPDATE FILESTATUS SET STATUS='bad' WHERE ID=?
. Cependant, quand je l'exécute, il se bloque en faisant cela. Des idées pour lesquelles cela pourrait arriver? Aucun message d'erreur ne se produit, il se bloque simplement. Le code est ci-dessous.SQL Update bloque le programme Java
static void markDataBad(String docID)
{
try
{
String update = "UPDATE FILESTATUS SET STATUS='bad' WHERE ID=?";
PreparedStatement updateStatus = Main.con.prepareStatement(update);
updateStatus.setString(1, docID);
updateStatus.execute();
}
catch (Exception ex) {ex.printStackTrace();}
}
je l'ai déjà essayé de changer updateStatus.execute()
-updateStatus.executeQuery()
et updateStatus.executeUpdate()
, mais rien ne semble avoir changé.
Merci d'avance!
Il s'avère que je l'ai fait. Ran commit sur la base de données et maintenant il se met à jour sans problème (enfin, à part les problèmes qui sont apparus plus loin dans le code). Merci! – ryantmer