Je suis censé mettre à jour un élèves de première année à « A » basée sur la procédurePL/SQL Écrire une procédure pour mettre à jour une colonne?
ChangeGrade(p_sID, p_classID)
Si l'étudiant ne participe pas à la classe (p_classID), alors un message d'erreur est imprimé.
Voici le tableau:
L'inscription
sID classID Grade
*** ******* *****
104 10440 B
102 10220 C
... ..... .
Suis-je censé faire une jointure interne? Voici ce que j'ai:
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;
/
Ainsi quelle est l'erreur. Quel problème avez-vous rencontré? 'dbms_output.put_line ('La note de l'étudiant a été modifiée.')' Le point-virgule est manquant à la fin. Il devrait être 'dbms_output.put_line ('La note de l'étudiant a été changée.');' – XING
Obtenir une erreur à la ligne 7: Si p_sID = p_id_enrolled ALORS il est dit que la commande SQL n'a pas terminé correctement. À la ligne 2, SELECT sID dans p_id_enrolled indique que l'instruction SQL est ignorée. – Lizzie
Chaque instruction en code PL/SQL doit être suivie de ';' – Dmitry