Тема: курсор2_ оракл
Створіть курсор, який містить список тематик і інформацію про те, скільки авторів пишуть в кожному окремому жанрі. Збережіть значення полів в змінних. За допомогою курсору і пов'язаних змінних виконайте наступні
дії:
■ виведіть в циклі всі дані курсора;
declare
Name_theme varchar2(120);
i integer;
cursor theme_list is
select t.NAME_THEME,count (a.id_author)into i
from BOOKS b join THEMES t on(b.ID_THEME=t.ID_THEME) join AUTHORS a on(b.ID_AUTHOR=a.ID_AUTHOR)
where b.ID_AUTHOR=a.ID_AUTHOR and b.ID_THEME=t.ID_THEME
group by t.NAME_THEME,i;
begin
open theme_list;
loop
fetch theme_list into t.NAME_THEME,count(a.id_author);
exit when theme_list%not_found;
dbms_output.put_line(Name_theme||' '||i);
end loop;
dbms_output.put_line('was found'||theme_list%rowcount||'records');
close theme_list;
end;
Не знаю як в курсорі використати функцію Count, щоб рахувало загальну кількість авторів по кожній темі.
видає наступні помилки:
ORA-06550: line 5, column 47:
PL/SQL: ORA-00947: not enough values
ORA-06550: line 5, column 1:
PL/SQL: SQL Statement ignored
ORA-06550: line 12, column 23:
PLS-00201: identifier 'T.NAME_THEME' must be declared
ORA-06550: line 12, column 1:
PL/SQL: SQL Statement ignored
ORA-06550: line 13, column 22:
PLS-00208: identifier 'NOT_FOUND' is not a legal cursor attribute
ORA-06550: line 13, column 1:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.