ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Referenc-PL/SQL子程序-子程序的组成-RETURN语句

PLSQL Language Referenc-PL/SQL子程序-子程序的组成-RETURN语句

原创 Oracle 作者: luisedalian 时间:2014-03-29 08:22:38 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5675864