oracle 字符转正规表达,oracle 字符串转成行
oracle 字符串转成行
2021-01-23 18:46:4711
SELECT SUBSTR (T.RPT_ID,
INSTR (T.RPT_ID,',',1,C.LV)+ 1,
INSTR (T.RPT_ID,',',1,C.LV + 1)- (INSTR (T.RPT_ID,',',1,C.LV)+ 1))
AS RPT_ID
FROM (SELECT ',' || '85,86,87' || ',' RPT_ID,
LENGTH ('85,86,87' || ',') - NVL (LENGTH (REPLACE ('85,86', ',')), 0) CNT
FROM DUAL) t,
(SELECT LEVEL lv
FROM DUAL
CONNECT BY LEVEL <= LENGTH('85,86,87' || ',') - NVL(LENGTH(REPLACE('85,86,87', ',')), 0)) c
WHERE T.cnt >= c.lv
说明:CNT表示串里面有多少字符。
当是字符串是表中的字段时,取level<=最大个数
如:
1).取最大个数
SELECT MAX(LENGTH(RPT_ID || ',') -
NVL(LENGTH(REPLACE(RPT_ID, ',')), 0)) INTO v_c
FROM DIM_AUDIT_TABLE@sjmh_inter;
2).l转成行
SELECT T.T_NAME,
T.T_NAME_COMM,
T.T_COLUMN,
T.T_COLUMN_COMM,
t.COMMENT_NL,
t.COMMENT_NL_TIME,
t.SEQ_USER_ID,
SUBSTR(T.RPT_ID,
INSTR(T.RPT_ID, '','', 1, C.LV) + 1,
INSTR(T.RPT_ID, '','', 1, C.LV + 1) -
(INSTR(T.RPT_ID, '','', 1, C.LV) + 1)) AS RPT_ID
FROM (SELECT A.T_NAME,
A.T_NAME_COMM,
A.T_COLUMN,
A.T_COLUMN_COMM,
a.COMMENT_NL,
a.COMMENT_NL_TIME,
a.SEQ_USER_ID,
'','' || A.RPT_ID || '','' RPT_ID,
LENGTH(A.RPT_ID || '','') -
NVL(LENGTH(REPLACE(A.RPT_ID, '','')), 0) CNT
FROM DIM_AUDIT_TABLE@sjmh_inter A
WHERE a.COMMENT_NL is not null) T,
(SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= '||v_c||') C
WHERE C.LV <= T.CNT;
注:如果是上面代码是远程的代码,(SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= '||v_c||') C,不要用dual表,可以改用all_objects或user_objects, 要不然能查询,但是把查询出来的SQL插入到某个表时,只能插入一行
点击这里复制本文地址
以上内容由聚米学院网友整理呈现,如对侵犯您的权益,请联系邮箱:fzsbm@qq.com
支持Ctrl+Enter提交
oracle 字符转正规表达,oracle 字符串转成行相关推荐
- oracle字符nul怎么输入,oracle - 如何摆脱Oracle数据库中的NUL字符? - 堆栈内存溢出...
就个人而言,我会使用CHR()来识别零值. nul是ASCII 0, CHR()将返回您传入的数字的字符表示. SQL> with the_data as ( 2 select 'a' || c ...
- oracle 字符超长,oracle存储超长字符串
oracle 字符.数值.日期处理_计算机软件及应用_IT/计算机_专业资料.字符及处理方法 1.固定长度字符串: char(n) 空格补足,效率高,最大 2000. 2.变长: varchar(n) ...
- oracle 从后往前,oracle从后往前截取字符串 oracle截取字符串后三位
oracle怎么从后开始截取字符? 1.在oracle中经常需要使用到截取字符串函数substr.语法:substr(str,num1,[num2]) 默认情况下都是只需要两个参数,它的意思是从第二个 ...
- oracle md5 重复,33-SQLServer和Oracle使用MD5加密字符串不一致的问题
一.总结 1.varchar: 可变长度的非Unicode字符数据.n的值必须在1到8000之间.n是2的话,表示2个字节,所以可以存储2个英文,只能存储1个中文. nvarchar: 可变长度的Un ...
- oracle数据库 交集,Oracle两个逗号分割的字符串,获取交集、差集(sql实现过程解析)...
Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为"1,2,3,5",字段B为"2". 想获取两个字段的交集(相同值)2,获取两个字段的差集(差 ...
- oracle和当前时间作比较,Oracle字符和时间比较
数据库中的字段 2017-07-11 13:37:51 类型是char 或者varchar 要进件与 '20170625' 比较,格式不一致,需要将他转换成:yyyyMMdd 字符串 1.先to_d ...
- Oracle 与 Mysql NULL值,空字符串''的区别
Oracle(null等同于空字符'') 1.oracle插入空字符串默认替换成null 2.oracle查询(null和被替换的空字符)时使用 is null/is not null 3.使用聚合函 ...
- java oracle 字符_Oracle转义字符
1.oracle 特殊字符 转义 关键词: oracle 转义 环境:oracle 9i plsql 在plsql里边执行: update userinfo set pageurl='myjs ...
- oracle插入时间报错,Oracle 插入时间时 报错:ORA-01861: 文字与格式字符串不匹配 的解决办法...
一.写sql的方式插入到Oracle中 往oracle中插入时间 '2007-12-28 10:07:24' 如果直接按照字符串方式,或者,直接使用to_date('2007-12-28 10:07 ...
最新文章
- MyBatis构建sql时动态传入表名以及字段名
- 怎么运行java虚拟机_Java代码如何运行在Java虚拟机中
- 过山车(HDU-2063)
- 苹果cms快鸭影视海螺精品模板
- 英语学习笔记2019-11-01
- java 杭电3784继续xxx定律 栈的使用
- apk一键脱壳工具_一键新机!强大的抹机王来了!
- SpringDataJPA使用Specification动态查询和分页
- s5pv210时钟系统详解
- 安装gfortran
- 数据分析行业的发展前景怎么样? 未来关于十年数据分析行业的5种预测
- 【前沿技术】浅析搜狗AI主播背后的核心技术
- 安装WampServer后无法打开localhost的问题
- 码住丨这五款app打开了新世界的大门
- 勾股定理怎么在html上面显示,勾股定理怎么算?
- 天才少年曹原再上热搜,25岁,3年5篇Nature一作论文
- #边学边记 必修4 高项:对事的管理 第5章 项目成本管理 之 项目成本预算
- 奥地利经济部长表示无需监管区块链
- Verilog 非阻塞赋值的仿真/综合问题
- 【QPSK中频】基于FPGA的QPSK中频信号产生模块verilog设计