我们的RPG程序员告诉我,我们基于AS400的DB2数据库表都不允许空值,因为在RPG中,“很难编程”。我想知道这是否真的如此,如果是这样,是什么让这个基本的数据库功能在RPG中难以使用?
我意识到这可能略微超出Stack Overflow的范围,但这是我所知道的这类信息的最佳来源。
答案 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;