Name- Abhishek Bharat Dadhel PRN-124M1H006
Solution:-
CREATE OR REPLACE PROCEDURE Proc_Class (P_Roll_No IN NUMBER) AS
v_total_marks NUMBER;
BEGIN
-- Calculate the total marks by summing marks from all subjects
SELECT Subject1 + Subject2 + Subject3
INTO v_total_marks
FROM Stud_Marks
WHERE Roll_No = P_Roll_No;
-- Categorizing based on total marks
IF v_total_marks > 1200 THEN
UPDATE Result
SET Class = 'DISTINCTION'
WHERE Roll = P_Roll_No;
ELSIF v_total_marks BETWEEN 900 AND 1200 THEN
UPDATE Result
SET Class = 'FIRST CLASS'
WHERE Roll = P_Roll_No;
ELSIF v_total_marks BETWEEN 750 AND 900 THEN
UPDATE Result
SET Class = 'HIGHER SECOND CLASS'
WHERE Roll = P_Roll_No;
ELSE
UPDATE Result
SET Class = 'FAIL'
WHERE Roll = P_Roll_No;
END IF;
COMMIT; -- Commit the changes
DBMS_OUTPUT.PUT_LINE('Student categorization updated.');
END Proc_Class;
DECLARE
v_roll_no NUMBER := &roll_no;
BEGIN
Proc_Class(v_roll_no);
DBMS_OUTPUT.PUT_LINE('Categorization for Roll No ' || v_roll_no || ' has been
updated.');
END;
/