Hello,
the best way to learn PL/SQL is to do it on your own. Anyway, here is my suggestion.
**************************
**** STORED FUNCTION *****
**************************
CREATE OR REPLACE FUNCTION CalculateGPA(
nSSN IN students.ssn%TYPE)
RETURN students.gpa%TYPE IS
BEGIN
vRetGPA students.gpa%TYPE := -1;
-- Start selection the ssn value
BEGIN
SELECT gpa INTO vRetGPA FROM students WHERE ssn = nSSN;
END;
EXCEPTION
WHEN NO_DATA_FOUND
RETURN vRetGPA;
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE("Error = " || SQLERRM || " Code = " || SQLCODE);
RETURN vRetGPA;
END;
****************************
**** STORED PROCEDURE *****
****************************
CREATE OR REPLACE PROCEDURE CalculateGPA(
nSSN IN students.ssn%TYPE,
nGPA OUT students.gpa%TYPE) IS
BEGIN
vRetGPA students.gpa%TYPE := -1;
-- Start selection the ssn value
BEGIN
SELECT nGPA INTO vRetGPA FROM students WHERE ssn = nSSN;
END;
EXCEPTION
WHEN NO_DATA_FOUND
nGPA := vRetGPA;
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE("Error = " || SQLERRM || " Code = " || SQLCODE);
nGPA := vRetGPA;
END;
Thatīs it ...
If you want, test this with AlligatorSQL at
http://www.alligatorsql.com/download/alligator.zip
Hope that helps ?
Best regards
Manfred Peter
Alligator Company Software GmbH
http://www.alligatorsql.com