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

执行结果:

相关推荐
oMcLin几秒前
如何在 Oracle Linux 8.3 上通过配置 LVM 与 RAID 结合,提升存储系统的性能与数据冗余性
linux·数据库·oracle
罗马苏丹默罕默德1 分钟前
Ubuntu下部署.NetCore WebApi的方法
数据库·ubuntu·.netcore
AC赳赳老秦16 分钟前
医疗数据安全处理:DeepSeek实现敏感信息脱敏与结构化提取
大数据·服务器·数据库·人工智能·信息可视化·数据库架构·deepseek
喵叔哟20 分钟前
18.核心服务实现(下)
数据库·后端·微服务·架构
列御寇22 分钟前
MongoDB分片集群分片模式——哈希分片(Hashed Sharding)
数据库·mongodb·哈希算法
Coder_Boy_23 分钟前
基于SpringAI的在线考试系统-数据库表设计
java·数据库·算法
IT 行者23 分钟前
Claude之父AI编程技巧四:共享团队CLAUDE.md——打造统一的项目智能指南
数据库·ai编程
xj75730653328 分钟前
《精通Django》 第4章 Django模型
数据库·oracle·django
CHANG_THE_WORLD37 分钟前
switch case 二分搜索风格
前端·数据库
m0_5981772337 分钟前
SQL核心(1)
数据库·sql