匿名程序的 PLS-00103 错误
Posted
技术标签:
【中文标题】匿名程序的 PLS-00103 错误【英文标题】:PLS-00103 error with anonymous procedure 【发布时间】: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 我认为这个循环的目的是确保序列生成的数字没有被使用。
【参考方案1】:
您不需要第一个 BEGIN
。每个BEGIN
关键字必须与END
关键字匹配。
【讨论】:
以上是关于匿名程序的 PLS-00103 错误的主要内容,如果未能解决你的问题,请参考以下文章