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 小时前
健身达人小程序|基于java+vue健身达人小程序的系统设计与实现(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·小程序
q***78783 小时前
PostgreSQL的备份方式
数据库·postgresql
Austindatabases4 小时前
SQLite3 如果突发断电,关机,数据会丢还是不会丢?
数据库·sqlite
cqsztech6 小时前
windows上主机名长度超过16个字符导致连接报:ORA-12518
oracle
青春:一叶知秋8 小时前
【Redis存储】List列表
数据库·redis·缓存
爆更小哇10 小时前
MyBatis的TypeHandler :优雅地实现数据加密与解密
数据库·后端·mybatis
likuolei10 小时前
Eclipse 创建 Java 接口
java·数据库·eclipse
w***153110 小时前
Spring boot启动原理及相关组件
数据库·spring boot·后端
q***656911 小时前
PostgreSQL 17 发布了!非常稳定的版本
数据库·postgresql
云飞云共享云桌面11 小时前
如何降低非标自动化工厂的研发软件采购成本
运维·服务器·网络·数据库·性能优化·自动化