sql >> Base de Datos >  >> RDS >> Oracle

Oracle:la secuencia MySequence.currval aún no está definida en esta sesión

mysequence.CURRVAL devuelve el último valor que se obtuvo de la secuencia mysequence en su sesión y, por lo tanto, no se define hasta que haya obtenido un valor utilizando mysequence.NEXTVAL al menos una vez en la sesión. El propósito de CURRVAL es permitirle usar el valor de la secuencia más de una vez en su código, por ejemplo,

insert into parent (parent_id, ...) values (mysequence.NEXTVAL, ...);

insert into child (parent_id, ...) values (mysequence.CURRVAL, ...);

Si CURRVAL acaba de devolver el último valor obtenido de la secuencia por any sesión, entonces sería inútil en el código anterior y, de hecho, podría conducir a la corrupción de datos.