我在Oracle 11g中编写了以下内容来分隔IN params(I_PRODUCT)并进行查询。当我给出一个参数作为i_PRODUCT时,它正在填充一些结果。当我插入多个逗号分隔参数时,我期望逐个查询并填充整个结果,并且它不起作用。查询,用逗号分隔PLSQL中的IN参数
create or replace PROCEDURE RQUERY
(
I_PRODUCT VARCHAR2
, O_Cursor OUT SYS_REFCURSOR
) AS BEGIN
O_Cursor := NULL;
OPEN O_Cursor for
SELECT * FROM Table1 WHERE
Table1.PRODUCT LIKE (select regexp_substr(I_PRODUCT,'[^,]+', 1, level) from dual
connect by regexp_substr(I_PRODUCT, '[^,]+', 1, level) is not null);
END RQUERY ;
我换成'LIKE' IN'不工作。没有输出。我有PRODUCT列,值为“RETAIL”和“LEASE”。我用来查询的IN参数是''R%,L%'' – SamK
不,它不起作用。在我提供的链接中查看我的答案。改变IN列表不会以这种方式工作。此外,您正在使用LIKE使用逗号分隔值进行野外搜索。不起作用。 –
查看更新。 –