我正在尝试在 where 子句中动态构建一个 IN,它不适用于多个值。当我输入一个值时它确实有效。我用 dmbs_output 测试输出,它看起来是正确的。逻辑在程序内部。欢迎任何帮助。
xq:=q'#select '('||q'[']'||REPLACE(UPPER(:pc),',',q'[',']')||q'[']'||')' from dual#';
EXECUTE IMMEDIATE xq BULK COLLECT
INTO qu
using pclient_code;
pclient_code2 := qu(1);
然后在程序的后期
where
acv.client_code in case when pclient_code='*' then acv.client_code else pclient_code2 end
界面是
(pclient_code IN VARCHAR2,pclient_loc IN VARCHAR2,plob IN VARCHAR2,pclient_sube IN VARCHAR2, c_data IN OUT APP_NADS.PKG_STAND_SUBRO_ITD_ALL.type_stand_subro_itd_ALL) ```