我收到代码
的以下错误ORA-06550:第17行,第0列:PLS-00103:遇到符号 "档案结尾"期待以下之一:
declare
procedure empsindept (dep_no in emp.deptno%type) is
totalnum number := 0;
begin
dbms_output.put_line ("The guys in dept are");
for i in (select * from emp where deptno=dep_no) loop
dbms_output.put_line(i.ename||"--------"||i.empno);
totalnum:=totalnum+1;
end loop;
dbms_output.put_line("The total guys are : "||totalnum);
end;
请在这里帮助我
谢谢你
答案 0 :(得分:0)
当您使用declare
时,必须按照in the docs所述完成PL / SQL块:
PL / SQL是一种块结构语言。 PL / SQL块由关键字
DECLARE
,BEGIN
,EXCEPTION
和END
定义,将块分为三个部分:
- 声明:声明变量,常量和其他代码元素的语句,然后可以在该块中使用
- 可执行文件:执行块时运行的语句
- 异常处理:一个特殊结构化的部分,可用于“捕获”或捕获可执行部分运行时引发的任何异常
仅需要可执行部分 。您不必在块中声明任何内容,也不必捕获该块中引发的异常。
所以...你的代码应该是这样的,最后还有一个begin ... end
,你也需要执行一些语句,可能会调用你的程序:
declare
procedure empsindept (dep_no in emp.deptno%type) is
totalnum number := 0;
begin
dbms_output.put_line ('The persons in dept ' || dep_no || ' are');
for i in (select * from emp where deptno=dep_no) loop
dbms_output.put_line(i.ename||'--------'||i.empno);
totalnum:=totalnum+1;
end loop;
dbms_output.put_line('The total number of persons is: '||totalnum);
end;
begin
-- something should happen here...
end;