PL/SQL如何在不获取返回对象的情况下调用函数

Ste*_*gas 5 oracle plsql declaration function return-value

我在PL/SQL中有一个函数:

FUNCTION do_something
  RETURN BOOLEAN
IS
  ...
BEGIN
  ...
END
Run Code Online (Sandbox Code Playgroud)

这个函数可以这样调用:

DECLARE
  answer BOOLEAN;
BEGIN
  answer := do_something();
END
Run Code Online (Sandbox Code Playgroud)

现在,有些情况下,我不需要返回的布尔值.如果我不想得到它,只需写:

do_something();
Run Code Online (Sandbox Code Playgroud)

我得到了PLS-00306(调用DO_SOMETHING时参数类型的数量错误)有没有办法在不声明和设置新布尔值的情况下调用它,在这种情况下我永远不会使用它?

smn*_*brv 8

非常简单:创建一个涵盖此功能的过程

PROCEDURE do_something
IS
  dummy boolean;
BEGIN
  dummy := do_something();
END;
Run Code Online (Sandbox Code Playgroud)

抱歉,这是PL/SQL的唯一方法.这种语言在过程和函数的定义上非常严格,如果不处理结果,就不能进行函数调用.但是你可以制作一个程序,如上例所示.

它将自动定义选择功能的位置和程序.

编辑

至于有些人不信任我(有时候我真的告诉​​坏事,所以怀疑是允许的:))这是测试:

declare
  myresult boolean;

  function do_something return boolean
    is
  begin
    return true;
  end;

  procedure do_something
    is
      dummy boolean;
  begin
    dummy := do_something();
  end;
begin
  myresult := do_something();

  do_something();
end;
Run Code Online (Sandbox Code Playgroud)

效果很好.