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