2012-05-22 108 views
19

Ocasionalmente obtengo este error cuando intento actualizar un registro a través de la cuadrícula.Los datos se han confirmado en otra/misma sesión, no se puede actualizar la fila (Oracle SQL Developer)

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

Mirado en OTN, pero todavía no hay ninguna solución.

Intenté deshabilitar la opción Publicar ediciones en el cambio de fila pero todavía no hubo suerte.

Existe una solución conocida para configurar el campo NULL a través de la hoja de cálculo SQL, pero seguramente es un problema.

+0

¿Estás seguro de que tienes el último desarrollador de SQL? –

+0

anteriormente utilicé algo así como 2.xx.xxx y ahora me he actualizado a la versión 3.1.07 Build MAIN-07.42 y sigo recibiendo el mismo error – MaVRoSCy

Respuesta

24

Podría ser que su tabla se haya creado con NOROWDEPENDENCIES para que el seguimiento de dependencias a nivel de fila esté desactivado, y SQL Developer esté configurado para "Usar ORA_ROWSCN para DataEditor insert and update statements".

O bien desmarque la opción ORA_ROWSCN o recree la tabla con ROWDEPENDENCIES.

+0

¿Cómo desactivo esta opción, @DavidAldridge? No tengo idea de cómo encontrarlo. – periback2

+0

Está en algún lugar de las preferencias ... no recuerdo dónde y no tengo SQL Developer instalado más –

+11

Seleccione Herramientas de la barra de menú -> Preferencias -> Base de datos -> ObjectViewer, Hay una casilla de verificación "Usar ORA_ROWSCN para DataEditor inserte y actualice las declaraciones "aquí una imagen http://postimg.org/image/8z2fkqb4z/ –

5

Simplemente ejecute el comando de actualización simple y configure su columna en nulo. Luego intenta actualizar con tu valor real. Definitivamente funcionará.

-1

Me encontré con este problema también mientras ejecutaba un procedimiento almacenado. Mi solución cayó en línea con las respuestas anteriores. Antes de actualizar la fila que quería al valor que quería, agregué una línea de actualización que primero actualizó la columna a nulo. La siguiente línea luego actualizó la columna al valor que yo quería. Hice esto además de quitar la marca de ORA_ROWSCN.

ACTUALIZACIÓN TEST_LOCATION SET STATUS = NULL WHERE FULL_NAME = SITE_FULL_NAME;

ACTUALIZACIÓN TEST_LOCATION SET STATUS = CAST (STATUS_IN COMO INTEGER) WHERE FULL_NAME = SITE_FULL_NAME;

Cuestiones relacionadas