ORACLE 如何将参数变量作为select in()的参数使用
发布网友
发布时间:2022-04-10 11:17
我来回答
共3个回答
热心网友
时间:2022-04-10 12:47
用动态sql
或者
将V_CUR_GOODS 中的值 变成多行数据插入临时表中 再使用
SELECT COUNT(*) INTO V_PCTRANS
FROM LT_ORDERS A
WHERE A.DD_SOURCE = '0042' AND A.DD_ORDERSTATUS = '0'
AND A.DD_STOREID = '0001'
AND A.DD_GOODS IN (
SELECT A.PARAM_4
FROM LT_PARAMTOPARAM A
WHERE A.PARAM_1 = '7'
AND A.PARAM_2 = '0001'
AND A.PARAM_3 = '0058';
);
热心网友
时间:2022-04-10 14:05
用动态sql
或者
将V_CUR_GOODS 中的值 变成多行数据插入临时表中 再使用
话说为什么要这么复杂呢?
像下面就可以了?!
SELECT COUNT(*) INTO V_PCTRANS
FROM LT_ORDERS A
WHERE A.DD_SOURCE = '0042' AND A.DD_ORDERSTATUS = '0'
AND A.DD_STOREID = '0001'
AND A.DD_GOODS IN (
SELECT A.PARAM_4
FROM LT_PARAMTOPARAM A
WHERE A.PARAM_1 = '7'
AND A.PARAM_2 = '0001'
AND A.PARAM_3 = '0058';
);
热心网友
时间:2022-04-10 15:39
可以用正则表达式和分层的方式将变量先转化为查询结果,再去in
这么写:“AND A.DD_GOODS IN (SELECT trim(regexp_substr(str, '[^,]+', 1, level)) strRows FROM(SELECT :V_CUR_GOODS as str from al) t CONNECT BY instr(str, ',', 1, level - 1) > 0)”