在DB2和RPG中设置NULL值

Arc*_*ian 2 db2 rpgle

我有一个rpg程序,其中包含一个更新db2表的例程.

我在程序中声明了一个局部变量

myvar

If <condition>
    %nullind(myvar) = *on
Run Code Online (Sandbox Code Playgroud)

它抱怨该字段不能为空.

我在SQL更新语句中使用此变量

 UPDATE TABLE
 SET X=:myvar
Run Code Online (Sandbox Code Playgroud)

如何将X设置为null?

jam*_*man 7

内部定义的字段不支持null,但您可以使用外部描述的数据结构导入表定义并为数据库字段启用空值.

H ALWNULL(*USRCTL)

D TABLE         E DS                  EXTNAME(TABLE) QUALIFIED

 /FREE
    if <condition>;
        %nullind(table.x) = *on;
    endif;

    exec sql update table
        set x = :table.x
        where <condition>;
 /END-FREE
Run Code Online (Sandbox Code Playgroud)