我应该更新年级学生根据程序PL/SQL编写一个过程来更新列?
ChangeGrade(p_sID, p_classID)
如果学生没有在类(p_classID)就读“A”则打印错误消息。
下面是表:
招生报名
sID classID Grade
*** ******* *****
104 10440 B
102 10220 C
... ..... .
我应该做一个内部联接?这是我有什么:
Create or Replace ChangeGrade (
p_sID enrolling.sID%type
p_classID enrolling.classID%type)
AS
p_id_enrolled NUMBER;
BEGIN
SELECT sID into p_id_enrolled
FROM Enrolling
WHERE sID = p_sID
AND classID = p_classID
IF p_sID = p_id_enrolled THEN
update Enrolling
set GRADE = 'A'
dbms_output.put_line('Student grade has been changed.')
ELSE
dbms_output.put_line('Student record does not exist.')
END IF;
END;
/
所以什么错误。你面临什么问题? 'dbms_output.put_line('学生成绩已被更改'。)'最后缺少分号。它应该是 'dbms_output.put_line('学生成绩已被更改');' – XING
在第7行得到错误:如果p_sID = p_id_enrolled那么它表示SQL命令没有正确结束。在第2行,SELECT sID到p_id_enrolled中,它表示SQL语句被忽略。 – Lizzie
PL/SQL代码中的每个语句都必须后面跟着'; – Dmitry