Oracle 字符串转多行(REGEXP_SUBSTR)
方案一:
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)的更多相关文章
- Oracle字符串行拆分成列的三种方式
Oracle字符串行拆分成列的三种方式 --muphy 开发过程中经常会遇到将前台多个值用逗号连接一同传递到后台查询,这个用逗号连接的字符串分隔的每个字符串分别对应Oracle数据库表的不同行. 如下 ...
- 字符串转 多行 ,判断给定一组id ,查库中不存在用
SELECT REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i') AS STR FROM DUAL CONNECT BY LEVEL < ...
- oracle 字符串切割成结果集方法
oracle字符串切割几种方式 方法一: SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('1','2','3','4','5')); 方法二: ...
- ORACLE字符串分组聚合函数(字符串连接聚合函数)
ORACLE字符串连接分组串聚函数 wmsys.wm_concat SQL代码: select grp, wmsys.wm_concat(str) grp, 'a1' str from dual un ...
- [转]Oracle字符串拼接的方法
本文转自:http://www.blogjava.net/liuwuping12064915/archive/2011/06/27/353096.html 和其他数据库系统类似,Oracle字符串连接 ...
- 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 ...
- Oracle字符串函数
Oracle字符串函数 平常我们用Oracle主要有两种字符串类型1.char始终为固定的长度,如果设置了长度小于char列的值,则Oracle会自动用空格填充的.当比较char时,Oracle用空格 ...
- Oracle字符串连接的方法
Oracle数据库中,使用“||”进行字符串连接,下面就让我们一起了解一下Oracle数据库中字符串连接的方法,希望对您能有所帮助. 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串 ...
- oracle 分组取第一行数据 ,查询sql语句
oracle 分组取第一行数据 SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, t.* FR ...
- Python 入门(一)定义字符串+raw字符串与多行字符串
定义字符串 前面我们讲解了什么是字符串.字符串可以用''或者""括起来表示. 如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" " ...
随机推荐
- 深入了解SSH
学习:深入了解SSH ssh 有商业和开源版本,其中openssh是开源中最流行的. ssh历史 1995 年 7 月, 芬兰学者Tatu Ylonen 以免费软件的形式将一套保护信息传输的程序(也就 ...
- Oracle生成awr报告操作步骤
1.cmd命令窗口 以sysdba身份登录Oracle 2.执行@?/rdbms/admin/awrrpt命令,并选择报告类型为HTML.输入天数以选择生成报告的时间段,一般默认为最近7天.输入报告开 ...
- PHP变量与变量作用域
PHP变量与变量作用域 1. 变量的基本概念 在PHP中,变量用于存储各种类型的数据,如字符串.整数.浮点数.布尔值.数组和对象等.变量名以美元符号$开头,后面跟着一个或多个字符(变量名).例如: & ...
- 基于deepseek模型知识库,Cherry Studio和AnythingLLM使用效果对比
基于deepseek模型知识库,Cherry Studio和AnythingLLM使用效果对比 目 录 1. 使用效果对比基础 2. Cherry Studio和Any ...
- Drasi Reactions SDK
Drasi Reactions SDK 是一个跨语言的开发工具包,用于实现和处理 Drasi 平台的 Reactions(反应器)功能.该 SDK 目前支持三种主流编程语言:JavaScript/Ty ...
- 安全稳定地远程访问飞牛NAS
春节前从一个网友那里了解到一个新的NAS--飞牛. 起因是我们一个用户用我们的SD-WAN来远程访问飞牛NAS,市面上做NAS的很多,之所以单独体验这个产品主要是: 不需要购买硬件,这个是非常重要的, ...
- 原根学习笔记+BSGS复习笔记
学原根发现拔山盖世算法忘光了,干脆一块儿写了吧. \(BSGS\) 算法 \(BSGS\) 算法,又名拔山盖世算法.北上广深算法.他解决的问题如下: 求解最小的可行的 \(k\),满足 \(a^k\e ...
- 反范式设计,冗余用户姓名,修改用户姓名后,业务表同步更新 -- MySQL 存储过程
反范式设计,冗余用户姓名,通过存储过程进行业务表的同步更新. 所有的表,在创建的时候,都加了创建人.修改人的字段..用户姓名发生变化时,要将所有的表都更新一遍. 创建存储过程 MySQL CREATE ...
- idea debug时提示”Method breakpoints may dramatically slow down debugging“的解决办法
- Ansible - [11] Roles
前言 Q1:什么是Roles 在实际生产环境中,会编写大量的playbook文件来实现不同的功能.而且,每个playbook还可能会调用其他文件(变量文件),对于海量的.无规律的文件,管理是个问题.A ...