方案一:

SQL

1.一个数据表(TABLE1_ZK)中存在一个字段(STRS)(存储格式是以【,】隔开的字符串)

2.现需要将其查分为多行数据(每行为其中一个字符串)

3.sql

SELECT t.id,
REGEXP_SUBSTR(t.STRS, '[^,]+', 1, LEVEL) AS mat
FROM (
select bds.id,bds.STRS
from TABLE1_ZK bds
where bds.STRS is not null
) t
CONNECT BY LEVEL <= regexp_count(t.STRS, ',')+1
and t.id = prior t.id and prior dbms_random.value is not null

4.查询结果


可能遇见的问题:

SpringBoot   druid 可能会报SQL注入失败:java.sql.SQLException: sql injection violation, deny object : dbms_random

1.原因:

yml中进行了wall(防火墙)配置;wall拦截了dbms_random

2.解决:

去掉其中wall配置即可


方案二:

若业务系统不允许去除wall

更换SQL:

select distinct bds.id, regexp_substr(bds.STRS, '[^,]+', 1, Level,'i') str
from TABLE1_ZK bds
where bds.STRS is not null
connect by Level <= LENGTH(bds.STRS) - LENGTH(REGEXP_REPLACE(bds.STRS, ',', '')) + 1

查询结果:


注:大数据量(多行且需字段转行数量较大)可能会出现死循环;

建议程序中循环处理,查询单条并转换;

Oracle 字符串转多行(REGEXP_SUBSTR)的更多相关文章

  1. Oracle字符串行拆分成列的三种方式

    Oracle字符串行拆分成列的三种方式 --muphy 开发过程中经常会遇到将前台多个值用逗号连接一同传递到后台查询,这个用逗号连接的字符串分隔的每个字符串分别对应Oracle数据库表的不同行. 如下 ...

  2. 字符串转 多行 ,判断给定一组id ,查库中不存在用

    SELECT REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i') AS STR     FROM DUAL   CONNECT BY LEVEL < ...

  3. oracle 字符串切割成结果集方法

    oracle字符串切割几种方式 方法一: SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('1','2','3','4','5')); 方法二: ...

  4. ORACLE字符串分组聚合函数(字符串连接聚合函数)

    ORACLE字符串连接分组串聚函数 wmsys.wm_concat SQL代码: select grp, wmsys.wm_concat(str) grp, 'a1' str from dual un ...

  5. [转]Oracle字符串拼接的方法

    本文转自:http://www.blogjava.net/liuwuping12064915/archive/2011/06/27/353096.html 和其他数据库系统类似,Oracle字符串连接 ...

  6. Oracle字符串操作[转:http://www.cnblogs.com/xd502djj/archive/2010/08/11/1797577.html]

    ORACLE 字符串操作 1 字符串连接   SQL> select 'abc' || 'def' from dual; 'ABC'|------abcdef 2 小写SQL>select ...

  7. Oracle字符串函数

    Oracle字符串函数 平常我们用Oracle主要有两种字符串类型1.char始终为固定的长度,如果设置了长度小于char列的值,则Oracle会自动用空格填充的.当比较char时,Oracle用空格 ...

  8. Oracle字符串连接的方法

    Oracle数据库中,使用“||”进行字符串连接,下面就让我们一起了解一下Oracle数据库中字符串连接的方法,希望对您能有所帮助. 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串 ...

  9. oracle 分组取第一行数据 ,查询sql语句

    oracle  分组取第一行数据 SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, t.* FR ...

  10. Python 入门(一)定义字符串+raw字符串与多行字符串

    定义字符串 前面我们讲解了什么是字符串.字符串可以用''或者""括起来表示. 如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" " ...

随机推荐

  1. 调试存储过程中出现 [Microsoft][ODBC SQL Server Driver]对于造型说明无效的字符值

    调试存储时如果有日期类型的参数,传入格式为:2020-07-13 12:00:00 ,无需用引号括起来. 否则会提示[Microsoft][ODBC SQL Server Driver]对于造型说明无 ...

  2. Linux mint安装百度云

    deb包下载 BCloud 作者官网https://github.com/XuShaohua/bcloud-packages 链接: https://pan.baidu.com/s/1hskY04G ...

  3. 我们是如何解决abp身上的几个痛点

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. abp框架在.net社区是spring一样的存在,用的人也非常多,毫无疑问,它确实 ...

  4. flutter-修改Android包名

  5. WPF 线程处理

    参考链接:https://docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-3.5/ms771750(v=vs.90)

  6. 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章

    2025年2月25日,.NET团队在博客上宣布了.NET 10 Preview 1的正式发布,文章参见:https://devblogs.microsoft.com/dotnet/dotnet-10- ...

  7. 如何通过 Linux Bash 技术,让你的独立产品实现一键安装

    我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户. 虽然我编写了非常详细的在线文档,说明如 ...

  8. Twain Capabilities属性

    Asynchronous Device Events 异步设备事件 CAP_DEVICEEVENT MSG_SET选择应用程序希望Twain源报告的事件; MSG_RESET返回Twain源的首选设置 ...

  9. typora编辑数学公式

    最后,需要补充两点: 1.如果要导出为docx,需要安装pandoc https://github.com/jgm/pandoc/releases/tag/3.6.3 2.如果要自己写代码,比如输入\ ...

  10. 解密prompt系列50. RL用于优化Agent行为路径的一些思路

    OpenAI新推出的Deep Research功能,属实有些惊艳,也验证了去年的一些观点,之后的大模型工作流会呈现一些截然不同的形态,有敏捷型的例如语音端到端的及时对话,也会有异步长流程的复杂任务,去 ...