首页 > 解决方案 > 如何通过逗号分隔的oracle sql通过绑定变量传递多个字符串值

问题描述

SELECT a.gl_account, g.gl
    from et_bp_gl_account a,et_bp_gl g
    where a.gl_id=g.gl_id
    and g.gl in (select replace(:P117_GL,':',',')  from et_bp_gl )

----- 这是我用来通过绑定变量传递多个值的代码,例如 (Asset Mg:Finance)子查询应该通过将 ':' 替换为 ',' 而返回 ( Asset Mg,Finance ) 但它不起作用并返回

没有找到日期

使用 Oracle Sql

标签: sqloracleoracle-apex

解决方案


顶点,嗯?这是一个穿梭项目或允许多项选择的选择项目。无论如何,您应该将该冒号分隔的列表拆分为行,如下所示:

SELECT a.gl_account, g.gl
from et_bp_gl_account a,et_bp_gl g
where a.gl_id=g.gl_id
and g.gl in (select regexp_substr(:P117_GL, '[^:]+', 1, level)
             from dual
             connect by level <= regexp_count(:P117_GL, ':') + 1
            )

推荐阅读