如何解决如何传入逗号分隔的值列表作为 Oracle 中的参数输入
我有一个简单的选择查询,我想在包含多个值(逗号分隔列表)的 WHERE 子句中传递一个参数,并且查询显示每个逗号分隔值的结果? 我需要知道 Oracle sql 中的语法/方法是什么。
所以在我的参数下面的查询中是 (:ENTITY_CODE),我希望这个参数传入一个逗号分隔的值列表
SELECT
C.BUSInesS_UNIT__C AS Region,E.ENTITY_NAME AS EntityName,C.COMPANY_NAME__C AS CompanyName,C.COMPANY_NUMBER__C AS CompanyNumber,C.ACE_OWNER_NUMBER__C AS OwnerNumbe
FROM
SFB_CASE C
JOIN COMPANY_DIM CO ON C.COMPANY_NUMBER__C = CO.COMPANY_NUMBER
JOIN GBL_ENTITY_DIM E ON CO.GBL_ENTITY_KEY = E.GBL_ENTITY_KEY
WHERE
E.ENTITY_CODE = (:ENTITY_CODE)'
解决方法
您可以按如下方式使用层次结构查询:
WHERE
E.ENTITY_CODE IN (SELECT REGEXP_SUBSTR(:ENTITY_CODE,'[^,]+',1,LEVEL) FROM DUAL
CONNECT BY LEVEL <= REGEXP_COUNT(:ENTITY_CODE,',') + 1))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。