sql - 如何通过逗号分隔的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
解决方案
顶点,嗯?这是一个穿梭项目或允许多项选择的选择项目。无论如何,您应该将该冒号分隔的列表拆分为行,如下所示:
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
)
推荐阅读
- r - 如何为一个 (Y) 轴生成 ggplot Log10 比例图?
- c# - 谁能告诉我为什么 AllowDrop 不适用于文本框
- amazon-web-services - Cloudfront 证书和主机名:它们可以不同吗?
- node.js - 多个快速的外部 POST 请求
- javascript - 如何对同一动作类中的方法调用动作?
- micronaut - Picocli 命令中的注入与 micronaut 之间的互操作性
- docker - 如何在单个 AWS EC2 实例上设置 3 节点 Elasticsearch 集群?
- enums - 用其他值替换地图中的空值
- android - Android:获取芯片图标点击事件
- oracle - 权限缺失 - Oracle System 事件触发问题 12c