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

MySeq.currval 從你的會話中的MySeq序列獲取最新的值並返回,所以,它不曾被定義,直到你在你的會話中至少一次用MySeq.NEXTVAL獲取一個值。CURRVAL的目的是讓你在你的代碼中使用某個序列值多於一次。sql

若是CURRVAL僅從任意會話取得最新的值並返回,那麼在下面的代碼中它就變得無用,事實上,那會致使數據污染。session

也有繞過這個問題的技巧:oracle

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, ...);

stackoverflowthis

相關文章
相關標籤/搜索