Вы упускаете с запятой в конце курсора:
CURSOR employees_in_10_cur
IS
SELECT *
FROM ad_week_table;
Сообщение об ошибке всегда будет давать вам номер строки происходит ошибка. Всегда проверяйте это и смотрите в этой области.
Например, если я изменю таблицу, чтобы я мог ее запустить, я получаю следующее:
SQL> declare
2
3 cursor employees_in_10_cur is
4 select *
5 from user_tables
6
7 begin
8 for employee_rec in employees_in_10_cur loop
9 dbms_output.put_line (
10 employee_rec.ad_no || ',' || employee_rec.week_no);
11 end loop;
12 end;
13/
for employee_rec in employees_in_10_cur loop
*
ERROR at line 8:
ORA-06550: line 8, column 8:
PL/SQL: ORA-00905: missing keyword
ORA-06550: line 4, column 5:
PL/SQL: SQL Statement ignored
ORA-06550: line 11, column 4:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
begin function pragma procedure subtype type <an identifier>
<a double-quoted delimited-identifier> current cursor delete
exists prior
У вас есть 3 ошибки; один в строке 8, потому что курсор недействителен, один в строке 11, потому что цикл не происходит, потому что курсор недействителен, а один - в строке 4, в котором говорится, что «заявление проигнорировано».
Этот вопрос не соответствует теме, поскольку он слишком локализован – Ben