Ste*_*gas 5 oracle plsql declaration function return-value
我在PL/SQL中有一个函数:
FUNCTION do_something
  RETURN BOOLEAN
IS
  ...
BEGIN
  ...
END
这个函数可以这样调用:
DECLARE
  answer BOOLEAN;
BEGIN
  answer := do_something();
END
现在,有些情况下,我不需要返回的布尔值.如果我不想得到它,只需写:
do_something();
我得到了PLS-00306(调用DO_SOMETHING时参数类型的数量错误)有没有办法在不声明和设置新布尔值的情况下调用它,在这种情况下我永远不会使用它?
非常简单:创建一个涵盖此功能的过程
PROCEDURE do_something
IS
  dummy boolean;
BEGIN
  dummy := do_something();
END;
抱歉,这是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;
效果很好.