Oracle数据中如何在 where in() 条件传参

一、问题场景描述

在sql 条件中,如何在 where in()中想传入参数,如果直接 where in(:seqList),当传入单个值,seqList:= '80' 是没问题的,但是初入多个值时,seqList:= '80,90' ,因缺少单引号,导致查询结果不对。

二、解决办法

使用正则变换函数 regexp_substr()

javascript 复制代码
select * from fa_receita_farmacia_proc t where  t.NR_SEQUENCIA in 
        (SELECT 
         REGEXP_SUBSTR(:V_parameter,'[^,]+', 1, LEVEL) 
         FROM DUAL 
         CONNECT BY 
         REGEXP_SUBSTR(:V_parameter, '[^,]+', 1, LEVEL) IS NOT NULL) ;

测试数据: 20,30,40

执行结果:

相关推荐
ImomoTo32 分钟前
HarmonyOS学习(十三)——数据管理(二) 关系型数据库
数据库·学习·harmonyos·arkts·鸿蒙
机器视觉知识推荐、就业指导3 小时前
Qt/C++事件过滤器与控件响应重写的使用、场景的不同
开发语言·数据库·c++·qt
jnrjian3 小时前
export rman 备份会占用buff/cache 导致内存压力
数据库·oracle
isNotNullX4 小时前
一文解读OLAP的工具和应用软件
大数据·数据库·etl
小诸葛的博客5 小时前
pg入门1——使用容器启动一个pg
数据库
大熊程序猿6 小时前
python 读取excel数据存储到mysql
数据库·python·mysql
落落落sss6 小时前
sharding-jdbc分库分表
android·java·开发语言·数据库·servlet·oracle
jnrjian6 小时前
Oracle 启动动态采样 自适应执行计划
数据库·oracle
lamb张7 小时前
MySQL锁
数据库·mysql