oracle regexp substr函数问题

SELECT REGEXP_SUBSTR('34,56,-23', '[^,]+', 1, LEVEL, 'i') AS STR FROM DUAL CONNECT BY LEVEL <= LENGTH('34,56,-23') - LENGTH(REGEXP_REPLACE('34,56,-23', ',', '')) + 1;

以上的sql在sqlplus develop下执行能得到34,56,-23的结果集,但在程序中执行返回datatable的时候却是2行“,” 1行空的结果,这是为什么,求大神解释下

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Oracle正则表达式REGEXP_SUBSTR用法
一、正则表达式匹配规则。 在别人那里看到一篇文章,这里对匹配规则记录的可以说是非常详细了 传送门:正则匹配规则传送处 二、实例说明:Regexp_Substr()     2.1:Regexp_Substr() 与Substr()的区别。         两者的本质都是截取,不过前者可以传入截取参数,比如根据什么来截取,以及获取截取到的第几组内容;         后者只能传入截取开...
oracle中regexp_substr函数截取子字符串
regexp_substr函数 [String] 使用正则表达式从字符串中抽取子串。1. 语法: regexp_substr( expression, regular-expression [, start-offset [ , occurrence-number [, escape-expression ] ] ] );regexp_substr( expression, re
oracle 包含数字的字符排序问题 ORDER BY REGEXP_SUBSTR
oracle 包含数字的字符排序问题 ORDER BY REGEXP_SUBSTR欢迎使用Markdown编辑器REGEXP_SUBSTR 函数使用 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 REGEXP_SUBSTR 函数 这个函数...
Oracle——正则表达式REGEXP_SUBSTR及表达式匹配规则
今天来记录一下Oracle中如何使用正则表达式。 一、正则表达式匹配规则。 在别人那里看到一篇文章,这里对匹配规则记录的可以说是非常详细了 传送门:正则匹配规则传送处 二、实例说明:Regexp_Substr() 2.1:Regexp_Substr() 与Substr()的区别。 很明显,一个是正则表达式,一个不是。。。如果我这么说的话,你会不会骂我。。
Oracle分割字符串中的所有逗号 REGEXP_SUBSTR
分割字符串中所有的逗号,然后成多行 参数说明, 参数1: 待分割字符串 参数2:正则表达式 参数3:起始位置,从第几个字符开始正则表达式匹配(默认为1) 参数4:标识第几个匹配组,默认为1 参数5:模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。) SELECT REGEXP_SUBSTR('34,56,-23', '[^,]+', 1, LEVEL
Oracle的REGEXP INSTR函数简单用法
Oracle的REGEXP INSTR函数简单用法
sql学习笔记之(4)字符串切割函数regexp_substr()
sql也提供了对字符串进行正则分割,取特定字符的函数——regexp_substr() regexp_substr()函数格式如下: regexp_substr(str, pattern, position, occurrence, modifier) 其中: str:待分割的字符串或者字段值; pattern:匹配的正则表达式,pattern = '[^___]+',下划线的内容就是需...
ibatis使用Oracle的regexp_replace等正则函数时需要注意转义问题
1.报错提示 2.问题sql select regexp_replace('10000', '(00)+$', '') from dual 这行sql在developer客户端中可以正常运行,但是放到代码中后老是报了上面的错。最终发现应该是转义的问题。 3.正确写法 select regexp_replace('10000', '(00)+$$', '') fro...
Oracle 中使用 Regexp_substr 和 Connect By 来根据分隔符进行列转行操作示例
先查询出数据库中记录 select t.ID,t.存储名称,t.存储路径,t.上传人,t.上传时间 from zlmaindata.投标记录 t 以上为查询结果,我要将【存储名称】多文件名按照分号进行分割,然后转换为两行。 使用如下代码查询: with t1 as( select 存储名称 as c1,存储路径,上传人,上传时间 from zlmaindata.投标记录 w
Oracle 存储过程分割字符串,自定义方法(长度相同),REGEXP_SUBSTR(长度不同),多列拆分合并
1.自定义方法(长度相同,是指拆分后的每个长度相同): create or replace package body by_pkg is /*检查字符串分割后的实际个数*/ procedure SPLIT_SIZE(fundlist varchar2, ret out varchar2) as ilen integer; flist varchar2(2048); begi...
Oracle中substr函数和instr函数的结合使用
1、instr函数是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置。 函数定义如下: /*  * 返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始)  * @param string 源字符串  * @param substring 子字符串  * @param position 检索位置,可省略(默认为1),参数为正时,从左向右检
SQL Server中substring Oracle中substr截取汉字时的长度问题
这两个函数截取汉字时都是按汉字字数来的, 如果你想用字节长度请用下面的函数   select substring('北京市海淀区', 1, 6);select substring(convert(text, '北京市海淀区'), 1, 6);   select substr('北京市海淀区',1, 6) from dual; select substrb('北京市海淀区',1, 6) fr...
REGEXP_SUBSTR()字符串转多行
--在oracle中,使用一条语句实现将'a,b,c'拆分成'a','b','c'的集合 SELECT NVL(REGEXP_SUBSTR('a,b,c', '[^,]+', 1, LEVEL, 'i'), 'NULLL') AS STR FROM DUAL CONNECT BY LEVEL &amp;lt;=5 ---- SELECT REGEXP_SUBSTR('a,b,c', '...
Oracle和MySQL中通用的字符串截取函数——substr()
       字符串的截取是SQL语句中很常见的一种操作,Oracle和MySQL的字符串在字符串的截取上还是有一点区别的,Oracle中的字符串截取函数为substr(),而MySQL中的字符串截取函数可以为substr()和substring()。显然,不管Oracle还是MySQL中,对于substr()都是通用的。 substr()函数的语法格式为: (1)substr(expr1,e...
oracle中substr()函数和instr()函数用法
1. substr()函数和instr()函数 表中一个字段中存了多个值,每个值用逗号分隔,如:‘1,2’代表‘红,黄’,‘5,10’代表‘黑,白’ --截取逗号前的值 substr(a.str, 0, instr(a.str, ',')-1) --截取逗号后的值 substr(a.str, instr(a.str, ',' , -1, 1)+1, length(a.str)) 2. 其他...
oracle 包里使用函数,里使用decode,substr
1、oracle包里使用decode的方法和使用substr的方法不一样,所以使用decode的时候总是报错 例如使用substr时 FUNCTION remove_str(p_in_string varchar2) return varchar2 is varchar_out varchar2(4000); begin varchar_out := substr(p_in_
【Oracle笔记】instr和substr函数的用法及实例解析
一、instr(字符查找函数) 格式一:instr(源字符串,目标字符串) 格式二:instr(字符串,目标字符串,起始位置,匹配序号)
oracle的常用函数 instr() 和substr()函数
在Oracle中 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。 语法: instr(sourceString,destString,start,appearPosition) instr('源字符串' , '目标字符串' ,'开始位置','第几次出现') 其中sourceStr...
Oracle中的substr()函数 详解及应用
1)substr函数格式 (俗称:字符截取函数)   格式1: substr(string string, int a, int b);   格式2:substr(string string, int a) ; 解释: 格式11、string 需要截取的字符串2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)3、b 要截取的字符串的长度格式21、string ...
oracle的substr、length函数的用法
oracle的substr函数的用法 oracle的substr函数的用法 取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] ) 如: substr('This is a test', 6, 2) would return 'is' substr('This is a test...
oracle sql 中利用regexp_substr 函数获取字符串中的数字(小数部分)
废话不多说。。。直接SQL:select regexp_substr('12.12元/小时', '\d*(\d*\.\d*)?') from dual这里的这个正则表达式有小数匹配小数,无小数则匹配整数。
揭开正则表达式的神秘面纱
揭开正则表达式的神秘面纱 [出处:http://www.regexlab.com/zh/regref.htm] 引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbb...
Oracle substr()函数截取数据字段
需求我们现在需要获取的数据库字段的部分值,而不是需要拿到的整个字段 例如 我们现在取到以下数据字段 但是我们只需要字段的前两个值,如下: 实现对现有的数据进行截取,使用到了 substr()函数substr()函数substr(字符串,截取开始位置,截取长度) //返回截取的字 substr(‘Hello World’,0,1) //返回结果为 ‘H’ *从字符串第一个字符开始截取长度
regexp_like字符串中的指定字符串或者字符,区分逗号
23,3,11,71,18,28 1,11,7,71 1,12,71,34 27,19,72 1,6,20 1,18,34 这样一组数据 要查出 1,11,7,71 1,6,20 1,18,34 这样的 sql 如下  select * from t99 where regexp_like(name,',1,|
oracle字符窜操作
oracle中实现截取字符串(substr)、查找字符串位置(instr)、替换字符串(replace) 时间:2014年08月27日  浏览:54070次 (1)oracle中实现截取字符串:substr substr(string, start_position, [length]) 其中,string是元字符串,start_position为开始位置,length是可选项
oracle中字段拼接和substr函数用法
oracle中的字段拼接是通过“||”来完成的。       例如:       NO                   Q     ----------   ------------------------------     001                 n1     001                 n2     001                 n3     0...
Oracle中substr()的使用技巧(干货!!!!)
substr(字符串,截取开始位置,截取长度)=返回截取的字 select substr('miaoying',0,1) from dual;--返回结果为:m select substr('miaoying',1,1) from dual;--返回结果为:m--说明0和1都表示截取的位置为第一个字符 select substr('miaoying',-7,4) from dual;--返回结果为...
oracle中decode函数,length函数,substr函数,upper函数,自己看的
update uadpt_tac_act_data set TERMINAL=UPPER(TERMINAL) update uadpt_tac_act_data set brand=substr(brand,1,50) where length(brand) > 50 update uadpt_tac_act_data set soft_lock=decode(soft_lock
MySQL Mybatis 动态批量替换 (模拟Oracle regexp_replace功能)
在项目中遇到了一个地方,需要把原先用Oracle写的sql改成MySQL的,然而里面就设计到了标题提到的regexp_replace函数。 我们的需求就是,要替换掉数据库中数据中的一些特殊字符,来和后台处理过特殊字符的数据进行比对,判断是否相同。 举个例子,数据库里面有一个字段的值是AB.C-D&amp;amp;V,后台通过处理,得到一个字符串为ABCDV,这个时候我们比较的结果肯定是不等的...
substr()截取和拼接字符串(oracle)
select       --手机显示前八位,后几位以*显示       substr(c.mobile,1,8)||'***' as mobile,        --通讯地址(后五码以*****显示)       c.province||c.city||substr(c.address,length(c.address)-5+1,5)||'*****' as addr  from ...
MySQL和Oracle字符串截取函数用法总结(比较)
我的原创地址:https://dongkelun.com/2019/05/28/mysqlAndOracleSubString/ 前言 本文总结MySQL和Oracle的字符串截取函数的用法 工作中MySQL和Oracle都用,有时会碰到两种数据库SQL用法的不同,就会上网查一下,但是时间久了,就忘记了,好记性不如烂笔头,所以写个笔记备忘一下~ 1、MySql 函数:SUBSTRING 或 S...
substr函数以及reserve函数
str.substr函数string str=&quot;123456789&quot;;string str2=str.substr(0,5);//能够给返回str字符串中位置索引从0到5的字符串cout&amp;lt;&amp;lt;str2&amp;lt;&amp;lt;endl;输出结果:12345reserve函数string str3=reverse(str.begin(),str.end());//起到翻转作用cout&amp;lt;&amp;lt;...
Oracle instr与substr的区别及用法
一、instr函数是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置。 /*  * 返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始)  * @param string 源字符串  * @param substring 子字符串  * @param position 检索位置,可省略(默认为1),参数为正时,从左向右检索,参数为负时,从右向左检索...
oracle regexp_substr 报ora-12725 正则表达式中的圆括号不配对
最近执行以下sql时,报“ora-12725 正则表达式中的圆括号不配对”错 select * from T_S_BBD_WORLDPORT t where length(regexp_substr('111爱尔兰111',t.itemname)) >0 ';怀疑是正则表达式关键字括号导致,于是执行select 1 from dual t  where length(regexp_substr('
Oracle:返回索引instr(), 子字符串substr(),去空格trim(),统一大小写Lower(),Upper(),字符串长度length()
1、去除Oracle数据库中某个表中某一列数据的空格 : trim(字段名) 2、查找字符串位置:instr(字段名,子字符串,[起始位置])      起始位置不写默认为1,即从正向第一个开始查起      如果是负值,表示从末尾向前查起 3、oracle中实现截取字符串:substr(字段名,开始位置,[长度] ) 4、Lower(char):将字符串装换为小写的格式
oracle substr、instr以及case when 的连用截取字符串以及替换(repace)的使用
最近项目上使用到截取的字符串  后来发现经同事提醒 发现replace比较简单 则又换成了replace ,都给记录一下,以便帮助人; 如下,现需要将某个字段的-本部 给截取掉: 1. substr、case when、instr等函数 连用:  substr(oc.fname_l2,0,case when instr(oc.fname_l2,'-本部')>0 then instr(oc.f
Oracle中截取字符串常用函数SUBSTR、INSTR
例句:SUBSTR(l.full_path_name, INSTR(l.full_path_name, '/',1,2)) logicname效果: /总目录/子目录1/子目录2     ------&amp;gt;    /子目录1/子目录2 解析:substr(字符串,截取开始位置,截取长度) //返回截取的字substr(字符串,截取开始位置) //截取到最后一个字符instr('源字符串' , '...
DB2中用java类实现oracle中REGEXP_LIKE效果
查询按照IBM官方文档予以实现了。参考文档https://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1011db2luwpatternmatch/#four
Oracle的REGEXP_REPLACE函数简单用法
REGEXP_REPLACE让你搜索的字符串的正则表达式模式REPLACE函数的功能。默认情况下, 该函数返回source_char与replace_string取代了正则表达式模式的每个实例。 返回的字符串是在相同的字符集source_char。 语法 Oracle数据库中的REGEXP_REPLACE函数的语法是: REGEXP_REPLACE(source_char, pa
substr用法源码
substr的用法源码