Oracle

Saludos,
se me está presentando la siguiente situación:
En mi base datos local utilizando sqldeveloper ejecuto scripts y ejecutan correctamente, cuando envío estos mismo scripts donde el usuario para ejecutarlos en la base de datos del proyecto, los primeros inserts de algunas tablas falllan porque hay una violación de la clave primaria, es decir ya existe el valor con el cual se va a insertar.
Lo raro de esto es que para realizar estos inserts utilizo secuencias por cada tabla y en los inserts en el campo PORQUE las utilizo, así que no debería sacar error porque tomaría siempre el siguiente valor de las secuencias (nextval). Si ejecuto una segunda vez solo los insert que fallaron corren sin ningún error.
Mi pregunta es, ¿puede ser alguna configuración del ambiente o porque para algunas secuncias la primera vez que encuentra un nextval es como si se quedara en el mismo valor? O que otra razón podrá ser
Muchas gracias

1 respuesta

Respuesta
1
La única explicación que se me ocurre es que en las tablas de la base de datos del proyecto se realicen inserciones sin utilizar las secuencias, por lo que los valores que le pidas a las secuencias ya estén siendo utilizados en la tabla.
Se puede comprobar antes mediante:
-- Con esta select obtienes el valor máximo del campo en la tabla.
select max(campo_pk) from tabla;
-- Con esta select obtienes el último valor que ha devuelto esta secuencia. La siguiente vez que pidas un NEXTVAL te dará ese valor + 1.
select secuencia.currval from dual;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas