2016-04-28 2 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 вы должны заполнить/SQL блок PL, как указано in the docs:

PL/SQL представляет собой блок-структурированный язык. A/SQL блок PL определяется по ключевым словам DECLARE, BEGIN, EXCEPTION и END, которые разбивают блок на три секции:

  • Декларативные: заявления, которые объявляют переменные, константы и другие элементы кода, которые могут затем использоваться в этом блоке
  • Исполняемые: операторы, выполняемые при выполнении блока
  • Обработка исключений: специально структурированный раздел, который вы можете использовать для «catch» или trap, любые исключения, возникающие, когда исполняемый раздел пробеги

Выполняется только исполнительная версия . Вам не нужно объявлять что-либо в блоке, и вам не нужно ловить исключения, поднятые в этом блоке.

Итак ... ваш код должен выглядеть следующим образом, с дополнительным 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

Смежные вопросы