2016-04-28 87 views
0

我得到下面的错误的代码光标在步骤

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

仍然与单qoutes的错误 – Boni

回答

0

当你使用declare必须完成PL/SQL块,如前所述in the docs

PL/SQL是一种块结构的语言。

  • 声明:语句声明变量,常量和其他代码元素,其可以在PL/SQL块由关键字DECLAREBEGINEXCEPTIONEND,这打破了块分割成三个部分定义然后在该块内使用
  • 可执行文件:执行块时运行的语句
  • 异常处理:可用于“捕捉”或捕获可执行文件段时引发的任何异常的特殊结构部分运行

只需要可执行部分。您不必在块中声明任何内容,也不必捕获该块中引发的异常。

所以......你的代码应该是这样的,在末尾附加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; 
+0

这工作良好..你真棒:) – Boni

+0

不客气。 – trincot