如何从匿名 plsql 块调用函数

问题描述 投票:0回答:1

你好。

我有2个功能:

一个在包内,一个在包外,具有简单的创建功能。

在我的匿名区块中,我尝试给他们打电话:

declare

...

begin

   my_variable := get_myfunction_outside_a_package();

   my_other_variable := PK_myPackage.get_function_inside_a_package();

end;

此调用可以在包内工作。

这里,我有错误说这些函数没有定义......

是否可以在匿名块内调用这些函数...如何做到这一点?

oracle plsql
1个回答
0
投票

您的代码可以运行(如果您定义了变量、函数和包):

CREATE FUNCTION get_myfunction_outside_a_package RETURN NUMBER
IS
BEGIN
  RETURN 42;
END;
/

CREATE PACKAGE PK_myPackage
IS
  FUNCTION get_function_inside_a_package RETURN NUMBER;
END;
/

CREATE PACKAGE BODY PK_myPackage
IS
  FUNCTION get_function_inside_a_package RETURN NUMBER
  IS
  BEGIN
    RETURN 6 * 9;
  END;
END;
/

然后:

declare
  my_variable NUMBER;
  my_other_variable NUMBER;
begin
   my_variable := get_myfunction_outside_a_package();
   my_other_variable := PK_myPackage.get_function_inside_a_package();

   DBMS_OUTPUT.PUT_LINE(my_variable);
   DBMS_OUTPUT.PUT_LINE(my_other_variable);
end;
/

输出:

42
54

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.