大多数语言都能很好地处理null,不过COBOL在这方面很成问题。如果SQL或COBOL代码未能正确地处理null, COBOL程序会得到一个-305 SQLCODE,这通常会让它进入一个错误例程。
不过,不论是什么开发语言,如果没有建立适当的逻辑来考虑可能出现null的情况,就会出现逻辑错误。以下是可能出现null的一些情况:
·表定义中某些列定义为null
·没有Else的Case语句
·左、右和完全外联接
·选择Min、Max、Avg和Sum
·数学运算涉及可为null的列
COBOL开发人员要尽可能使用VALUE、IFNULL或COALESCE标量函数避免null进入程序。这样COBOL开发人员就可以不必编写相应代码而在每次执行SELECT或FETCH之后都检查null指示符。不过,有时相对于列中的所有其他值,null值有特定的含义。在这些情况下,就会需要一个null值,而在使用上述标量函数之一时指定某个默认值。
开发人员必须了解这一点,这很重要。由于开发人员不知道可能会有null,因此没有编写相应的代码,太多的事件报告和异常情况都是由此导致的。