在批量生成数据时,经常会用到序列的Nextval,今天碰到了这样的情况,日常记录,下附解决方案。先看这段脚本
DECLARE i INTEGER;
BEGINFOR cur IN 1..5 LOOPi := DomainObjectId.Nextval;dbms_output.put_line(i);END LOOP;
END;
编译时直接报错
解决方案一:使用函数
其中是NEXTOBJECTID函数,返回DomainObjectId.Nextval
DECLARE i INTEGER;
BEGINFOR cur IN 1..5 LOOPi := nextobjectid;dbms_output.put_line(i);END LOOP;
END;
解决方案二:用select into 赋值
DECLARE i INTEGER;
BEGINFOR cur IN 1..5 LOOPSELECT DomainObjectId.Nextval INTO i FROM dual;dbms_output.put_line(i);END LOOP;
END;