当前位置:K88软件开发文章中心编程全书编程全书01 → 文章内容

Oracle一则诡异的程序

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2019-1-3 1:51:38

:2010-02-11 21:02:00

今天检查程序的时候,发现一个诡异的问题。如下所示。

  function chkA_B return varchar2 as
  a   varchar2(10):=NULL;
  b   varchar2(10):='1';
  begin
  if a=b then
  return 'Error';
  end if;
  return 'ok';
  end;

  这段程序诡异地返回ok,而不是Error. 通过跟踪,程序进入了 return 'error' .但是紧接着也执行了return 'ok'.

  如果将if 的条件改为 if nvl(a,'0')=b 则程序正常。

  上述诡异程序是在9i上测试的。不知后续版本是否有所改变,没有测试。


Oracle一则诡异的程序