ORA-08002: sequence MySeq.currval is not yet defined in this session

原创
2018/10/24 18:12
阅读数 1.1K

MySeq.currval 从你的会话中的MySeq序列获取最新的值并返回,因此,它未曾被定义,直到你在你的会话中至少一次用MySeq.NEXTVAL获取一个值。CURRVAL的目的是让你在你的代码中使用某个序列值多于一次。

如果CURRVAL仅从任意会话取得最新的值并返回,那么在下面的代码中它就变得无用,事实上,那会导致数据污染。

也有绕过这个问题的技巧:

select LAST_NUMBER from user_sequences where sequence_name='MYSEQ';
insert into parent(parent_id, ...) values(mysequence.NEXTVAL, ...);
insert into child(parent_id, ...) values(mysequence.CURRVAL, ...);

stackoverflow

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部