这段程序诡异地返回ok,而不是Error. 通过跟踪,程序进入了 return ‘error’ .但是紧接着也执行了return ‘ok’. 今天检查程序的时候,发现一个诡异的问题。如下所示。

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约束Oracle认证实用技巧Oracle中over函数的使用示例Oracle数据库基本常识