【发布时间】:2019-12-01 15:41:34
【问题描述】:
这是我的 PL/SQL 代码,用于在按钮的动态操作中获取选中的复选框值。
DECLARE
IHC_ID_Y VARCHAR2(9);
IHC_ID_N VARCHAR2(9);
CURSOR Y IS
SELECT regexp_substr(:INFANT_HEALTH_CONDITIONS, '[^:]+', 1, level)
FROM DUAL
CONNECT BY regexp_substr(:INFANT_HEALTH_CONDITIONS, '[^:]+', 1, level) IS NOT NULL;
CURSOR N IS
SELECT regexp_substr(:INFANT_HEALTH_CONDITIONS, '[^:]+', 1, level)
FROM DUAL
CONNECT BY regexp_substr(:INFANT_HEALTH_CONDITIONS, '[^:]+', 1, level) IS NULL;
BEGIN
OPEN Y;
OPEN N;
LOOP
FETCH Y INTO IHC_ID_Y;
EXIT WHEN Y%NOTFOUND;
INSERT INTO INFANT_RESPONSE (INF_ID, IHC_ID, IR_DESCRIPTION) VALUES (:INF_ID, IHC_ID_Y, 'Y');
END LOOP;
CLOSE Y;
LOOP
FETCH N INTO IHC_ID_N;
EXIT WHEN N%NOTFOUND;
INSERT INTO INFANT_RESPONSE (INF_ID, IHC_ID, IR_DESCRIPTION) VALUES (:INF_ID, IHC_ID_N, 'N');
END LOOP;
CLOSE N;
END;
但是,我在这部分遇到了一个问题,
CURSOR N IS
SELECT regexp_substr(:INFANT_HEALTH_CONDITIONS, '[^:]+', 1, level)
FROM DUAL
CONNECT BY regexp_substr(:INFANT_HEALTH_CONDITIONS, '[^:]+', 1, level) IS NULL;
LOOP
FETCH N INTO IHC_ID_N;
EXIT WHEN N%NOTFOUND;
INSERT INTO INFANT_RESPONSE (INF_ID, IHC_ID, IR_DESCRIPTION) VALUES (:INF_ID, IHC_ID_N, 'N')
如您所见,当我将条件从IS NOT NULL 更改为IS NULL 时,获取的值将全部为空,因此无法插入到表行中。有没有办法获取未选中的复选框值?
【问题讨论】:
-
请分享参数的示例值:
INFANT_HEALTH_CONDITIONS包含空值而不是空值。
标签: sql oracle plsql oracle-apex