RPG编程中是否允许空值?

时间:2013-10-09 02:09:42

标签: sql db2 ibm-midrange rpg

我们的RPG程序员告诉我,我们基于AS400的DB2数据库表都不允许空值,因为在RPG中,“很难编程”。我想知道这是否真的如此,如果是这样,是什么让这个基本的数据库功能在RPG中难以使用?

我意识到这可能略微超出Stack Overflow的范围,但这是我所知道的这类信息的最佳来源。

2 个答案:

答案 0 :(得分:1)

答案结果是“NULLS 允许但需要额外的工作。”用户Carl Groner在上面评论了excellent article的链接,从RPG程序员的角度解释了这一点。以下是适用于我的问题的相关部分:

  

RPG / 400不支持处理数据库文件中的NULL。如果是文件   包含NULL,指定ALWNULL(* YES)编译器选项   Create RPG Program(CRTRPGPGM)命令允许程序执行   只访问该文件作为输入,但需要注意所有支持NULL的文件   遇到NULL时,字段包含“default”值。这个   表示RPG / 400程序无法区分NULL   例如,从空白处。

答案 1 :(得分:0)

IBM RPG目前不支持直接处理空值,但可以使用ISNULL内置函数在SQL调用中处理它们:

exec sql declare X cursor for 
select ISNULL(numfield, 0), 
       ISNULL(alphafield, '')
from table
where field = value
for read only;