我想在查询中使用输入变量。输入变量应该是一个集合。
例如:
这是一个工作查询:
select * from table_1
where key_1 in ('1', '2', '3')
但我想用一个输入变量替换该集
select * from table_1
where key_1 in (:input_set)
然后我将输入设置为::input_set=('1,2,3'(
然而,我找不到一种方法来实现这一点。
感谢OldProgrammer。
我使用了以下部分答案:Oracle:使用带文本字段的IN子句?
select * from table_1
where key_1 in (
when pzgr_id in (
select regexp_substr(str, '[^,]+',1,level)
from (select :input_set str from dual)
connect by level <= regexp_count(str,'[^,]+')
)
使用输入集"1,2,3"。重要的是不要使用1、2、3之间的空格。