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

执行结果:

相关推荐
wellc1 分钟前
Django视图与URLs路由详解
数据库·django·sqlite
倔强的石头1064 分钟前
新型电力系统应该用什么数据库?——时序数据库选型与落地实战
数据库·时序数据库
墨神谕5 分钟前
关系型数据库与非关系型数据库的区别
数据库·nosql
掌勺者10 分钟前
MySQL 事务简介
数据库·mysql
小码吃趴菜16 分钟前
服务器预约系统linux小项目-第四节课
数据库·sql·mysql
jnrjian17 分钟前
DBA_RECYCLEBIN purge指定日期前的表
oracle
探索宇宙真理.17 分钟前
Grafana SQL表达式漏洞 | CVE-2026-27876概念复现&研究
数据库·sql·grafana
jnrjian18 分钟前
rman restore preview 和validate ,preview可以查找到archivelog的范围
oracle·dba
jnrjian21 分钟前
只有dba_objects 试图显示 回收站中的对象
oracle·dba
七七powerful27 分钟前
MySQL 8.0 性能优化利器:Percona Toolkit 实战指南
数据库·mysql·性能优化