-- Connect programmer/p@9i
set serveroutput on
drop function Get_Grade1;
drop function Get_Grade2;
create or replace function Get_Grade1(score IN NUMBER) RETURN VARCHAR2 is
begin
CASE
WHEN score BETWEEN 80 AND 100 THEN
dbms_output.put_line('Between 80 and 100');
return 'A';
WHEN score BETWEEN 65 AND 79 THEN
dbms_output.put_line('Between 65 and 79');
return 'B';
WHEN score BETWEEN 50 AND 64 THEN
dbms_output.put_line('Between 50 and 64');
return 'C';
WHEN score BETWEEN 40 AND 49 THEN
dbms_output.put_line('Between 40 and 49');
return 'D';
WHEN score BETWEEN 0 AND 39 THEN
dbms_output.put_line('Between 0 and 39');
return 'F';
ELSE
return 'Invalid score';
END CASE;
end Get_Grade1;
/
Show Errors
begin
dbms_output.put_line(Get_Grade1(75));
end;
/
create or replace function Get_Grade2(score IN NUMBER) RETURN VARCHAR2 is
grade VARCHAR2(15);
begin
grade := CASE
WHEN score BETWEEN 80 AND 100 THEN 'A'
WHEN score BETWEEN 65 AND 79 THEN 'B'
WHEN score BETWEEN 50 AND 64 THEN 'C'
WHEN score BETWEEN 40 AND 49 THEN 'D'
WHEN score BETWEEN 0 AND 39 THEN 'F'
ELSE 'Invalid score'
END;
return grade;
end Get_Grade2;
/
Show Errors
select Get_Grade2(90) from dual
/