使用指示变量或数组将空值插入到列中
如果需要在列中插入空值,使用指示变量或数组是一种简便的方法。 指示变量或数组与特定的主变量或主变量数组相关联。
过程
使用指示变量或数组向列中插入空值:
示例
- 使用指示变量将列值设置为空值的示例
- 假设您的程序读取了员工ID和新的电话号码,并且必须用新的号码更新员工表。 如果旧号码不正确,则可能无法获得新号码,但新号码尚未可用。 如果列 PHONENO 的新值可能为空,则可以使用指示变量,如下面的 UPDATE 语句所示。
当NEWPHONE包含非空值时,在UPDATE语句前添加以下语句,将指示变量PHONEIND设置为零:EXEC SQL UPDATE DSN8C10.EMP SET PHONENO = :NEWPHONE:PHONEIND WHERE EMPNO = :EMPID END-EXEC.
当NEWPHONE包含空值时,通过在UPDATE语句前添加以下行,将PHONEIND设置为负值:MOVE 0 TO PHONEIND.MOVE -1 TO PHONEIND. - 使用指示变量数组将列值设置为空值的示例
- 假设主机变量数组 hva1 和 hva2 中已填充了要插入ACTNO和ACTKWD列的值。 假设ACTDESC列允许空值。 要将 ACTDESC 列设置为空,请将 -1 分配给其指示数组中的元素 ind3 ,如下例所示:
Db2 忽略 数组中的值,并将插入的10行中的ARTDSC列中的值赋值为空。 hva3/* Initialize each indicator array */ for (i=0; i<10; i++) { ind1[i] = 0; ind2[i] = 0; ind3[i] = -1; } EXEC SQL INSERT INTO DSN8C10.ACT (ACTNO, ACTKWD, ACTDESC) VALUES (:hva1:ind1, :hva2:ind2, :hva3:ind3) FOR 10 ROWS;