运行程序时出现错误 PLS-00103
Posted
技术标签:
【中文标题】运行程序时出现错误 PLS-00103【英文标题】:error PLS-00103 while running a procedure 【发布时间】:2017-10-15 10:17:51 【问题描述】:我是 plsql 的新手,并试图实现一个使用过程来执行某些任务的代码。我正在使用 oracle 10g。我已经制作了一个名为 stu_pack 的包,并且正在尝试制作包体,但徒劳无功。请帮助. 我想制定一个程序,为给定课程名称提供学生详细信息。 代码如下。
错误信息是:
第 14 行出现错误:PLS-00103:遇到符号“PROCEDURE”时 期待以下之一:;删除之前存在
符号“;”已替换为“PROCEDURE”以继续。
创建或替换包体 stu_pack 为 过程 proc1(cname IN number) as l_cname number(2);
CREATE OR REPLACE PACKAGE BODY stu_pack AS
PROCEDURE proc1 (
cname IN NUMBER
) AS
l_cname NUMBER(2);
cur1 student%rowtype;
CURSOR c1 IS SELECT
s.*
FROM
student s,
course c,
learn l
WHERE
c.cname = l_cname
AND c.cid = l.cid
AND s.sid = l.sid;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO cur1;
EXIT WHEN c%notfound;
dbms_output.put_line('student roll number:'
|| cur1.sid
|| ' student
name:'
|| cur1.sname
|| ' phone number:'
|| cur1.phone);
END LOOP;
CLOSE c1;
END procedure proc1;
END stu_pack;
/
【问题讨论】:
请提供完整的错误信息。 错误信息是 :ERROR at line 14: PLS-00103: Encountered the symbol "PROCEDURE" when expecting 以下之一:;删除前面存在的符号“;”替换为“PROCEDURE”继续。 1. 创建或替换包体 stu_pack 为 2. 过程 proc1(cname IN number) 为 3. l_cname number(2); 【参考方案1】:需要换行end procedure proc1
;
应该很简单
end;
或
end proc1;
【讨论】:
以上是关于运行程序时出现错误 PLS-00103的主要内容,如果未能解决你的问题,请参考以下文章