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

执行结果:

相关推荐
霸道流氓气质3 分钟前
MySQL 大数据量场景下的表结构与索引设计指南
数据库·mysql
AOwhisky6 分钟前
Redis 学习笔记(第二期):核心数据类型与消息队列实战
运维·数据库·redis·笔记·学习·云计算
lsyeei8 分钟前
MySQL常用索引
数据库·mysql
雨辰AI14 分钟前
生产级实战|SpringBoot3 + 达梦DM9 数据库权限收敛与三权分立完整落地方案
数据库·mysql·oracle·政务
Gong-Yu15 分钟前
MySQL数据库运维——性能优化进阶1️⃣
运维·数据库·mysql·性能优化
Harvy_没救了20 分钟前
【云计算】华为公有云构建高可用Redis集群
数据库·redis·云计算
念何架构之路20 分钟前
存储层技术:其他NoSQL数据库和RPC
数据库·oracle
枫叶林FYL26 分钟前
项目十一:Saga模式分布式旅行预订系统 核心服务实现与Saga编排器
数据库·python·docker
逍遥德26 分钟前
PostgreSQL --- 二进制数使用详解
数据库·sql·postgresql
Ze3G90nYt27 分钟前
Redis 分布式锁进阶第一百三十一篇
数据库·redis·分布式