包规范中 RETURN 语句的用途是什么
What is the use of RETURN statement in package specification
下面的代码编译成功。我想知道的是 RETURN 语句在包规范中的用途是什么。这是一个永远不会 运行 的死陈述吗?
CREATE OR REPLACE PACKAGE test_pkg
IS
RETURN NUMBER;
END test_pkg;
/
CREATE OR REPLACE PACKAGE BODY test_pkg
IS
PROCEDURE test_proc
IS
BEGIN
NULL;
END test_proc;
END test_pkg;
很酷,不是吗? RETURN
- 在此上下文中 - 不是 语句 ,而是数据类型为 NUMBER
的 变量 。
看例子:
SQL> SET SERVEROUTPUT ON
SQL>
SQL> CREATE OR REPLACE PACKAGE test_pkg
2 IS
3 RETURN NUMBER; --> declared here
4
5 PROCEDURE test_proc;
6 END test_pkg;
7 /
Package created.
SQL> CREATE OR REPLACE PACKAGE BODY test_pkg
2 IS
3 PROCEDURE test_proc
4 IS
5 BEGIN
6 test_pkg.return := 123; --> used here
7 DBMS_OUTPUT.put_line ('Return variable''s value = ' || test_pkg.return);
8 END test_proc;
9 END test_pkg;
10 /
Package body created.
SQL> EXEC test_pkg.test_proc;
Return variable's value = 123
PL/SQL procedure successfully completed.
SQL>
下面的代码编译成功。我想知道的是 RETURN 语句在包规范中的用途是什么。这是一个永远不会 运行 的死陈述吗?
CREATE OR REPLACE PACKAGE test_pkg
IS
RETURN NUMBER;
END test_pkg;
/
CREATE OR REPLACE PACKAGE BODY test_pkg
IS
PROCEDURE test_proc
IS
BEGIN
NULL;
END test_proc;
END test_pkg;
很酷,不是吗? RETURN
- 在此上下文中 - 不是 语句 ,而是数据类型为 NUMBER
的 变量 。
看例子:
SQL> SET SERVEROUTPUT ON
SQL>
SQL> CREATE OR REPLACE PACKAGE test_pkg
2 IS
3 RETURN NUMBER; --> declared here
4
5 PROCEDURE test_proc;
6 END test_pkg;
7 /
Package created.
SQL> CREATE OR REPLACE PACKAGE BODY test_pkg
2 IS
3 PROCEDURE test_proc
4 IS
5 BEGIN
6 test_pkg.return := 123; --> used here
7 DBMS_OUTPUT.put_line ('Return variable''s value = ' || test_pkg.return);
8 END test_proc;
9 END test_pkg;
10 /
Package body created.
SQL> EXEC test_pkg.test_proc;
Return variable's value = 123
PL/SQL procedure successfully completed.
SQL>