【问题标题】:What is the use of RETURN statement in package specification包装规范中 RETURN 语句的用途是什么
【发布时间】:2021-09-17 01:28:11
【问题描述】:
下面的代码编译成功。我想知道的是包规范中 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;
【问题讨论】:
标签:
sql
oracle
plsql
package
【解决方案1】:
很酷,不是吗? 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>