Это мой первый пост в переполнении стека.Обычно я просто ищу предыдущие вопросы и нахожу свои ответы, но в этом случае я не могу найти ответ на свой вопрос ни здесь, ни в более широком Интернете.
Проблема, с которой я столкнулся, заключается в том, что я хочу заполнить таблицу ссылок «многие ко многим», используемую для автоматического сохранения посещаемости.Когда новый студент добавляется в курс, студенты StudentNo и каждый соответствующий урок LessonNo будут занесены в таблицу ссылок в качестве первичных ключей.Кроме того, код посещаемости учащегося будет автоматически установлен на «Т», чтобы показать, что посещаемость должна быть подтверждена.
Я не хочу, чтобы это была процедура, поскольку в базе данных ожидается более 6000 активных записей учеников нет, причем более ста уроков применимо к каждому ученику.Только домашние студенты (их определение, а не мое) посещают колледж.Первичный ключ homeStudent идентичен общему первичному ключу учащегося.
Мой триггер выглядит следующим образом:
CREATE OR REPLACE TRIGGER Student_Added_to_Course
AFTER INSERT ON HomeStudent
FOR EACH ROW
DECLARE
CURSOR applicable_lessons
IS
Select Student.studentNo, Lesson.LessonNo
FROM
Student, Lesson, Course, Module
WHERE
Student.StudentNo = :new.studentNo
AND
Student.CourseNo = Course.CourseNo
AND
Course.CourseNo = Module.CourseNo
AND
Lesson.ModuleNo = Module.ModuleNo;
BEGIN
FOR I IN applicable_lessons
LOOP
INSERT INTO Attendance (StudentNo, LessonNo, AttendanceCode)
VALUES (I.student.studentNo, I.Lesson.LessonNo, 'T');
END LOOP;
END;
/
Я получаю следующие ошибки:
Строка 18:Оператор SQL игнорируется Строка 19: компонент «Урок» должен быть объявлен Строка 19: столбец здесь не разрешен
Поскольку все мои ошибки происходят со строки 18 и далее, я предполагаю, что допустил ошибку во время цикла вставки?
Может кто-нибудь сказать мне, что я здесь делаю не так.Я предполагаю, что исправление довольно простое, но я немного косоглазие, глядя на свою работу и не могу найти ошибку.
Заранее спасибо, Бобрек