db2 - 在 DB2 和 RPG 中设置 NULL 值

标签 db2 rpgle

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

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

myvar

If <condition>
    %nullind(myvar) = *on

它提示该字段不能为空。

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

 UPDATE TABLE
 SET X=:myvar

如何将 X 设置为空?

最佳答案

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

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

关于db2 - 在 DB2 和 RPG 中设置 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17328016/

相关文章:

ibm-midrange - RPGLE/free - 动态指定数据区库

syntax - db2 存储过程的休眠时间语法

db2 - 不存在足够的页面大小 - DB2 插入

mysql - CLOSE_CURSORS_AT_COMMIT 为 postgres 设置,但结果集在提交后保持打开状态

sql - DB2 SQL 如何使用 GET DIAGNOSTICS 获取最后执行的 SQL 语句?

java - 创建具有IBM I系列(AS400)特殊隐藏(不可打印和不可见?)字符的Java文件问题

java - 从 RPGLE (as400) 调用 java 方法

ibm-midrange - rpgle(sqlrpgle) 中的编译器指令/Include 和/copy 之间的区别

db2 - 在 DB2 SQL 中,如何终止已经陷入无限循环的递归函数调用?

Python Pandas 使用非 ASCII 字符从 IBM DB2 读取 SQL