web-dev-qa-db-fra.com

Les données ont été validées dans une autre/même session, impossible de mettre à jour la ligne (Oracle SQL Developer)

Je reçois parfois cette erreur lorsque j'essaie de mettre à jour un enregistrement à travers la grille. 

One error saving changes to table "SCHEMA"."TABLENAME":
Row 3: Data got committed in another/same session, cannot update row.

J'ai regardé OTN mais aucune solution n'a encore été donnée. 

J'ai essayé de désactiver l'option Publier des modifications sur le changement de ligne mais toujours pas de chance.

Il existe une solution connue pour définir le champ surNULLpar le biais de la feuille de calcul SQL, mais c’est sûrement un problème.

23
MaVRoSCy

Il se peut que votre table soit créée avec NOROWDEPENDENCIES. Par conséquent, le suivi des dépendances au niveau de la ligne est désactivé et SQL Developer est configuré pour "Utiliser les instructions ORA_ROWSCN pour DataEditor".

Décochez l'option ORA_ROWSCN ou recréez la table avec ROWDEPENDENCIES.

31
David Aldridge

Il suffit simplement d’exécuter la commande de mise à jour simple et de définir votre cplumn sur null. Ensuite, essayez de mettre à jour avec votre valeur réelle. Cela fonctionnera certainement.

5
Hari Shankar Maurya

"Une erreur lors de l’enregistrement des modifications apportées à la table" SCHEMA "." TABLENAME ": Ligne XX: les données ont été validées dans une autre session/même session, la ligne ne peut pas être mise à jour."

Vous avez obtenu cette erreur avec le développeur SQL lors de la validation de modifications dans plusieurs lignes, , Mais pas lors de la validation d'une seule ligne.

J'ai fixé aller à:

Menu Outils -> Préférences -> Base de données -> ObjectViewer

et vérifiez: "Publier les modifications sur le changement de ligne"

Cependant, chaque fois que je navigue sur une autre ligne prend un certain temps (moins d’une seconde avec la base de données sur laquelle je travaille). Pour les autres postes, la base de données distante de ma session est en cours de mise à jour (mais pas engagé dans toutes les sessions) chaque fois que je change de ligne. Cependant, pour s’engager dans toutes les sessions, il est nécessaire d’engager explicitement.

En attendant, j'ai essayé, comme d'autres l'ont suggéré, de:

Menu Outils -> Préférences -> Base de données -> ObjectViewer

décochez l'option "Utiliser ORA_ROWSCN pour les déclarations d'insertion et de mise à jour de DataEditor" (et laissez également décochée: "Publier les modifications sur le changement de ligne")

Cela fonctionne aussi, mais c'est plus rapide. Il suppose que maintenant la mise à jour est seulement locale. La base de données distante n'est pas mise à jour chaque fois que je navigue sur une autre ligne. Il est nécessaire de valider pour mettre à jour la base de données distante, mais maintenant sans erreur.

J'ai lu que cette solution ne fonctionnait pas pour tous. Cela a fonctionné dans mon cas avec:

Développeur SQL Version: 17.4.1.054, Build 054.0712

ODAC 12.2c version 1 et les outils de développement Oracle pour Visual Studio (12.2.0.1.0) (32 bits) ( http://www.Oracle.com/technetwork/topics/dotnet/utilsoft- 086879.html )

Version du serveur de base de données distante: Oracle Database 11g version 11.2.0.1.0 - Production 64 bits

0
Helder Daniel