Во-первых, если этот код абсолютно убит, извините. У меня проблемы с некоторым кодом для моего класса программирования баз данных. Смысл кода заключается в том, чтобы сделать так, чтобы, если последняя буква названия курса находилась в определенном диапазоне, она автоматически изменяла оценки всех, зачисленных в этот класс, на определенную оценку. Я собрал код, по сути, пытаясь подставить соответствующие имена столбцов, основываясь на задании, которое я сделал для триггеров, а также на очень простой c процедуре, загруженной профессором. Когда я запускаю его, я получаю множество ошибок PLS-00103, в которых говорится «Обнаружен символ» ([я получаю по одному для каждого из них] курс / раздел / оценки / если), ожидая одно из следующего:: =; .. «Между тем, что я не занимаюсь программированием и не теряю неделю лекций из-за COVID-19, я просто в тупике. Спасибо, что нашли время, чтобы посмотреть на это, и еще раз извините, если он пронизан ошибками. Код выглядит так:
CREATE or replace PROCEDURE grading AS
begin
DECLARE
CURSOR grading_cursor
IS SELECT student.student_id,
course.course_name,
section.section_id,
grades.grade
FROM student
JOIN grades
ON student.student_id = grades.student_id
JOIN section
ON grades.section_id = section.section_id
JOIN course
ON section.course_id = course.course_id;
mycoursename VARCHAR(20) course.course_name%type;
mySectionID number(10) section.section_id%type;
myGrade varchar(20) grades.grade%type;
begin
open grading_cursor;
loop
fetch grading_cursor
into myFirstName, myLastName,myCourseName, mySectionID, myGrade
if myCourseName is between '%a' and '%f' then
then myGrade = 'A'
elsif myCourseName is between '%g' and '%k' then
then myGrade = 'B'
elsif myCourseName is between '%l' and '%p' then
then myGrade = 'C'
elsif myCourseName is between '%q' and '%t' then
then myGrade = 'D'
elsif myCourseName is between '%u' and 'z' then
then myGrade = 'E'
EXIT WHEN grading_cursor%notfound;
end loop;
close grading_cursor;
end;
end;