购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

30.当心可以为Null的列,还要当心SQL语句可能从数据库管理器返回Null

大多数语言都能很好地处理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,因此没有编写相应的代码,太多的事件报告和异常情况都是由此导致的。 a2zAez+CNFhhxeTr0EqzsFpbgjAUPtlC/9L1WjHFtMVWQpOOQ+6eg/SGur2SGZ9+

点击中间区域
呼出菜单
上一章
目录
下一章
×