我正在使用 CICS 屏幕,用户可以在其中查询、添加、更新或删除表中的数据。在我的一张表中,唯一键由 5 个字段组成,其中 2 个可以为 NULL。在我的光标中,我不得不使用
AND (COLUMN_1 = :V??-REC.COLUMN-1 OR COLUMN-1 IS NULL)
然后我必须对结果进行评估并显示最接近的匹配结果。
我目前如何找到 NULL 条目:
EXEC SQL
DECLARE V000001-CUR CURSOR FOR
SELECT DOCM_N,
DOCM_TYPE_T,
REJ_RESN_C
FROM V000001
WHERE DOCM_N = :V000001-REC.DOCM-N
AND DOCM_TYPE_T = :V000001-REC.DOCM-TYPE-T
AND (REJ_RESN_C = :V000001-REC.REJ-RESN-C OR
REJ_RESN_C IS NULL)
END-EXEC
我在网上读到,在使用 update 或 insert 时,可以使用 null 指示符将 NULL 插入表中。
例如:
EXEC SQL
UPDATE V000001
SET DOCM_N = :V000001-REC.DOCM-N,
DOCM_TYPE_T = :V000001-REC.DOCM-TYPE-T,
REJ_RESN_C = :V000001-REC.REJ-RESN-C
:WS-REJ-RESN-C-IND
WHERE DOCM_N = :WW-DOCM-N
AND DOCM_TYPE_T = :WW-DOCM-TYPE-T
END-EXEC
我的问题。我可以在 WHERE 子句中使用空指示符吗?
如:
EXEC SQL
DECLARE V000001-CUR CURSOR FOR
SELECT DOCM_N,
DOCM_TYPE_T,
REJ_RESN_C
FROM V000001
WHERE DOCM_N = :V000001-REC.DOCM-N
AND DOCM_TYPE_T = :V000001-REC.DOCM-TYPE-T
AND REJ_RESN_C = :V000001-REC.REJ-RESN-C
:WS-REJ-RESN-C-IND
END-EXEC