Foros del Web » Programación para mayores de 30 ;) » Programación General »

Oracle sincronizacion de lectura de tabla o accesos a stored procedure

Estas en el tema de Oracle sincronizacion de lectura de tabla o accesos a stored procedure en el foro de Programación General en Foros del Web. Tengo un problema. Resulta que tengo un stored procedure encargado de realizar varias transacciones en muchas tablas. Es un procedimiento relativamente duradero ya que hay ...
  #1 (permalink)  
Antiguo 05/10/2010, 12:55
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 13 años, 6 meses
Puntos: 0
Oracle sincronizacion de lectura de tabla o accesos a stored procedure

Tengo un problema. Resulta que tengo un stored procedure encargado de realizar varias transacciones en muchas tablas. Es un procedimiento relativamente duradero ya que hay diferentes trigger que se ejecutan al momento de realizar operaciones en las tablas y cosas como esas. Entonces, ya que la primera operacion que se realiza dentro de este procedimiento, es un select a un tabla para incrementar el consecutivo del registro. Este valor que se incrementa se comienza a ingresar en todos los registros de las otras tablas.

El error es que hay ocasiones en dos usuarios acceden al procedimiento casi al mismo tiempo por lo que el valor que leen para el consecutivo es el mismo, al final de todas las transacciones, solo uno de los dos registros es insertado y el otro me genera un error de llave primaria violada.

Necesito saber si hay una forma de bloquear la lectura de un campo de la tabla y liberarlo hasta que el procedimiento finalice y despues que entre la siguiente peticion al procedimiento, o bien si esta misma operación se puede realizar sincronizando las llamadas al stored procedure.

Etiquetas: lectura, oracle, procedure, sincronizacion, stored, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:51.