出现 ORA-08002: 序列XXXXXXX.CURRVAL 尚未在此进程中定义。
导致原因:因为是首次查询序列的当前值,内存中之前并没有缓存序列的任何值,所以需要先查询
一下序列的下一个值(此时,Oracle会自动缓存已查询的序列值),再查询序列的当前值。
XXXXXXX.CURRVAL 只有在访问了XXXXXXX.NEXTVAL时才有效
如
select XXXXXXX.NEXTVAL from dual;
select XXXXXXX.CURRVAL from dual;
而直接
select XXXXXXX.CURRVAL from dual;
是不能执行的。
如
select XXXXXXX.NEXTVAL from dual;
select XXXXXXX.CURRVAL from dual;
而直接
select XXXXXXX.CURRVAL from dual;
是不能执行的。