2016-04-28 55 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