一下是部分代码可以不看
-----------------------------
CREATE OR REPLACE PROCEDURE P_Studentexam (
v_score IN NUMBER,
v_studentID IN NUMBER,
v_courseID IN NUMBER,
v_paperID IN NUMBER,
v_submitTime IN VARCHAR v_return OUT VARCHAR --0通过全课程,1通过部份,2未通过
) IS
/********************************************************学员考试处理 guoyiqian 2006-02-24**********************************************************/
v_pass CHAR(1); --通过考试
v_winCourse CHAR(1); --获得学分
v_examType PUBCOURSE.EXAMTYPE%TYPE;
v_passLine NUMBER;
v_totalTestQty NUMBER;
v_courseName VARCHAR2(200);
v_credithour NUMBER(4,2);
v_courseType CHAR(1);
v_category CHAR(2);
v_studentCourseCnt NUMBER;
v_selectDate DATE;
v_studyStatus CHAR(1);v_courseqty NUMBER;
v_courseSortID NUMBER;
TYPE courseSortIDType IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
courseSortType courseSortIDType;BEGIN
SELECT examType INTO v_examType
FROM PUBCOURSE pc
WHERE pc.courseid = v_courseID;
BEGIN
SELECT passLine,totalTestQty,courseName,credithour,courseType,category INTO v_passLine,v_totalTestQty,v_courseName,v_credithour,v_courseType,v_category
FROM PUBCOURSE
WHERE courseID = v_courseID;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_return := '指定的课程不存在,请检查您的数据是否正确!';
RETURN;
END; BEGIN
SELECT COUNT(studentCourseID),selectDate INTO v_studentCourseCnt,v_selectDate
FROM STDSTUDENTCOURSE
WHERE studentID = v_studentID AND courseID=v_courseID
GROUP BY selectDate;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_return := '无法记录考试成绩,原因可能是您尚未选修此课程或已经获得该课程的学分!';
RETURN;
WHEN OTHERS THEN
v_return := '操作失败,在取学员课程时发生未知错误!';
RETURN;
END; SELECT psc.studystatus INTO v_studyStatus
------------------请问如果这里 有很多 return 就是 在end 前面的 的
有什么作用啊。谢谢啦
-----------------------------
CREATE OR REPLACE PROCEDURE P_Studentexam (
v_score IN NUMBER,
v_studentID IN NUMBER,
v_courseID IN NUMBER,
v_paperID IN NUMBER,
v_submitTime IN VARCHAR v_return OUT VARCHAR --0通过全课程,1通过部份,2未通过
) IS
/********************************************************学员考试处理 guoyiqian 2006-02-24**********************************************************/
v_pass CHAR(1); --通过考试
v_winCourse CHAR(1); --获得学分
v_examType PUBCOURSE.EXAMTYPE%TYPE;
v_passLine NUMBER;
v_totalTestQty NUMBER;
v_courseName VARCHAR2(200);
v_credithour NUMBER(4,2);
v_courseType CHAR(1);
v_category CHAR(2);
v_studentCourseCnt NUMBER;
v_selectDate DATE;
v_studyStatus CHAR(1);v_courseqty NUMBER;
v_courseSortID NUMBER;
TYPE courseSortIDType IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
courseSortType courseSortIDType;BEGIN
SELECT examType INTO v_examType
FROM PUBCOURSE pc
WHERE pc.courseid = v_courseID;
BEGIN
SELECT passLine,totalTestQty,courseName,credithour,courseType,category INTO v_passLine,v_totalTestQty,v_courseName,v_credithour,v_courseType,v_category
FROM PUBCOURSE
WHERE courseID = v_courseID;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_return := '指定的课程不存在,请检查您的数据是否正确!';
RETURN;
END; BEGIN
SELECT COUNT(studentCourseID),selectDate INTO v_studentCourseCnt,v_selectDate
FROM STDSTUDENTCOURSE
WHERE studentID = v_studentID AND courseID=v_courseID
GROUP BY selectDate;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_return := '无法记录考试成绩,原因可能是您尚未选修此课程或已经获得该课程的学分!';
RETURN;
WHEN OTHERS THEN
v_return := '操作失败,在取学员课程时发生未知错误!';
RETURN;
END; SELECT psc.studystatus INTO v_studyStatus
------------------请问如果这里 有很多 return 就是 在end 前面的 的
有什么作用啊。谢谢啦
代码写的太挫了,到处都是exception
在这里没有任何值返回的,可以不写。
加起来才两个,而且用处是不同的,你的批评完全没有道理。return就是当前代码块执行完必,退出执行。