一下是部分代码可以不看
-----------------------------
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 前面的 的
有什么作用啊。谢谢啦

解决方案 »

  1.   

    return 语句后面就不再执行了
      

  2.   

    与所有语言一样(如C,C++等),return之后,直接退出该程序。
      

  3.   

    retrun 就直接退出当前执行的语句块了,有异常处理的话就转到异常那里了
    代码写的太挫了,到处都是exception
      

  4.   

    return 在这里就没有用上,所以可以省略掉return 一般用在function的返回值
      

  5.   

    return一般返回值用的,一般用在函数中。
    在这里没有任何值返回的,可以不写。
      

  6.   


    加起来才两个,而且用处是不同的,你的批评完全没有道理。return就是当前代码块执行完必,退出执行。