【发布时间】:2013-08-14 08:51:45
【问题描述】:
我遇到了一个错误
PLS-00103:在期待其中之一时遇到符号“文件结尾” 以下内容:[...]
运行匿名过程时(使用 Oracle):
BEGIN
DECLARE
seq number(12);
pk number(12);
BEGIN
loop
select mod_sdemol.nextval into seq from dual;
select idn_demol into pk from demol where demol.idn_demol=seq;
exit when pk is null;
end loop;
INSERT INTO "T_MOD"."DEMOL" (IDN_DEMOL, COD_MOL, PATH, IND_BLOK) VALUES (seq, '13000501', 'V', 'S');
END;
我想要做的是遍历一个序列以防止与现有数据发生冲突。 根据this question 中的答案,PL/SQL 过程应该对选定的数据执行某些操作,但我所有的 SELECT 都有 INTO。
我做错了什么或者我错过了什么?
【问题讨论】:
-
为什么在
declare之前需要begin?而变量pk在哪里使用,如果不使用为什么需要循环? -
@Polppan 我认为这个循环的目的是确保序列生成的数字没有被使用。