RETURN语句
RETURN语句立即结束子程序或匿名块的执行。子程序或匿名块可以包含多个RETURN语句。
(1)函数中的RETURN
每个执行路径必须到达RETURN语句,每个RETURN语句必须指定表达式。
RETURN语句将表达式的值赋值给函数的标识符,并将控制权返回给调用者,在那里调用结束之后立即继续执行。
DECLARE x INTEGER;
FUNCTION f (n INTEGER) RETURN INTEGER IS BEGIN RETURN (n*n); END;
BEGIN DBMS_OUTPUT.PUT_LINE ('函数f返回: ' || f(2) || '. 第1次执行返回.');
x := f(2); DBMS_OUTPUT.PUT_LINE('第2次执行返回.'); END;
|
CREATE OR REPLACE FUNCTION f (n INTEGER) RETURN INTEGER IS BEGIN IF n = 0 THEN RETURN 1; ELSIF n = 1 THEN RETURN n; ELSE RETURN n * n; END IF; END; / BEGIN FOR i IN 0 .. 3 LOOP DBMS_OUTPUT.PUT_LINE('f(' || i || ') = ' || f(i)); END LOOP; END; /
|
(2)过程中的RETURN
过程中的RETURN语句将控制权返回给调用者,在那里在调用之后执行立即恢复。
这个RETURN语句不能指定表达式。
DECLARE PROCEDURE p IS BEGIN DBMS_OUTPUT.PUT_LINE('在过程P中'); RETURN; DBMS_OUTPUT.PUT_LINE('不会执行的语句.'); END; BEGIN p; DBMS_OUTPUT.PUT_LINE('控制在这里返回'); END;
|
(3)匿名块中的RETURN
匿名块中的RETURN语句退出它所在的块,和包围它的块。
这个RETURN语句不能指定表达式。
BEGIN BEGIN DBMS_OUTPUT.PUT_LINE('在内部块.'); RETURN; DBMS_OUTPUT.PUT_LINE('不会执行的语句.'); END; DBMS_OUTPUT.PUT_LINE('在外部块中. 不会执行的语句.'); END;
|
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1131969/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17013648/viewspace-1131969/