Oracle中的instr和substr函数

执行 virtuoso 命令后,界面没有,cadence 启动不起来,如何解决? ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏「Bug调优」,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。码字不易,如果这篇文章对你有所帮助,帮忙给bugj菌来个,您的支持就是我坚持写作分享知识点传播技术的最大动力。「猿圈奇妙屋」; 阅读详情

Oracle中的instr和substr函数

Oracle PL/SQL中可以通过instr(获取特定字符串的索引)和substr(截取字符串)函数的组合使用进行字符串的截取实现类似于MySQL中substring_index函数或C#语言的Split函数。首先来认识下Oracle中的instr和substr函数。

1、instr函数

instr( string1,string2 [, start_position [, nth_appearance ] ] )

string1 源字符串

string2 目标字符串.

start_position 从string1 的哪个位置开始查找。默认为1.字符串索引从1开始。为正,从左到右开始检索,为负,从右到左检索。

nth_appearance 代表要查找第几次出现的string2.此参数可选,默认为 1.不能为负数

返回要查找的字符串string2在源字符串string1中的符合条件的开始索引

示例:

selectinstr('www.baidu.com', '.',-1,2) from dual

.在str中存在,-1说明检索是从最后一位开始,2说明出现2次,返回的结果是4

2、substr函数

substr(string,start_position,length)

string 源字符串,即被截取的字符串.

start_position 字符截取的开始位置.start_position大于0时,从左边算起,小于0时,从右边查起

length 截取字符的个数.默认截取到最后一位.

示例:

selectsubstr('www.baidu.com',1,4) from dual

执行结果都是'www.'

 

使用instr和substr函数实现MySQL中的substring_index函数

首先看第一个例子:

MySQL中:

select substring_index('www.baidu.com','.', 2);

Oracle中可以:

select substr('www.baidu.com', 1,instr('www.baidu.com', '.',1,2)-1) from dual

instr函数再-1是因为mysqlsubstring_index返回结果不包括.,上面返回的结果都是'www.baidu'。

看第二个例子:

MySQL中:

select substring_index('www.baidu.com','.', -2);

Oracle可以:

select substr('www.baidu.com',instr('www.baidu.com', '.',-1,2) + 1, length('www.baidu.com'))from dual

select substr('www.baidu.com',instr('www.baidu.com', '.',-1,2) + 1) from dual

 

使用instr和substr函数实现C#中的Split函数

         实现字符串按某字符截取的思路包括:instr获取该字符的索引;substr按索引截取字符串。获取字符串索引时要考虑字符串的头尾,并且要考虑字符串不存在分割字符的情况。实现的getstr函数如下,另外要考虑大字符串对象作为输入输出的情况,后面实现了getClobSt函数。

create or replace function getStr (

 inString IN varchar2,

 delimiter IN varchar2,

 substrNum IN INTEGER)

 return VARCHAR2

as

outStr varchar2(500);

begin

if instr(inString, delimiter,1,1) > 1then

 case

   when substrNum = 1

   then outStr := substr(inString, 1, instr(inString, delimiter,1,1)-1);

   when substrNum > 1 and instr(inString, delimiter,1,substrNum) > 0

   then outStr := substr(inString, instr(inString,delimiter,1,substrNum-1)+1, instr(inString, delimiter,1,substrNum)-instr(inString,delimiter,1,substrNum-1)-1);

   when substrNum > 1 and instr(inString, delimiter,1,substrNum) = 0 andinstr(inString, delimiter,1,substrNum-1) > 0

   then outStr := substr(inString, instr(inString,delimiter,1,substrNum-1)+1, length(inString)-instr(inString,delimiter,1,substrNum-1));

   when substrNum > 1 and instr(inString, delimiter,1,substrNum) = 0 andinstr(inString, delimiter,1,substrNum-1) = 0

   then outStr := '';

  endcase;

else

 outStr := inString;

end if;

return outStr;

end;

/

 

create or replace function getClobStr (

 inString IN CLOB,

 delimiter IN varchar2,

 substrNum IN INTEGER)

 return CLOB

as

outStr CLOB;

begin

if instr(inString, delimiter,1,1) > 1then

 case

   when substrNum = 1

   then outStr := substr(inString, 1, instr(inString, delimiter,1,1)-1);

   when substrNum > 1 and instr(inString, delimiter,1,substrNum) > 0

   then outStr := substr(inString, instr(inString,delimiter,1,substrNum-1)+1, instr(inString, delimiter,1,substrNum)-instr(inString,delimiter,1,substrNum-1)-1);

   when substrNum > 1 and instr(inString, delimiter,1,substrNum) = 0 andinstr(inString, delimiter,1,substrNum-1) > 0

   then outStr := substr(inString, instr(inString,delimiter,1,substrNum-1)+1, length(inString)-instr(inString,delimiter,1,substrNum-1));

   when substrNum > 1 and instr(inString, delimiter,1,substrNum) = 0 andinstr(inString, delimiter,1,substrNum-1) = 0

   then outStr := '';

  endcase;

else

 outStr := inString;

end if;

return outStr;

end;

/

plsql分割字符串 立即下载

相关推荐

Oracle中字符串截取常用方法总结【推荐】

substr 函数:截取字符串  语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。 示例: SELECT SUBSTR('Hello SQL!', 1) FROM dual --截取所有字符串,返回'Hello SQL!' SELECT SUBSTR('Hello SQL!', 2) FROM dual --从第2个字符开始,截取到末尾。返回'ello SQL!' SELECT

Oracle中字符串截取最全方法总结

此处截取源字符串SOURCE_CODE,从第1个字符开始,由于代表城市的code长度不固定,我们无法确定截取几个字符,所以使用instr函数判断第一个’_'字符的位置,进而确定每个SOURCE_CODE截取几个字符串。是因为**INSTR (SOURCE_CODE, ‘_’, 1, 1)**获取的是源字符串中’_'字符第一次出现的位置,再减1就得出了CITY字符个数。)开始,截取个数为:第2个’_‘出现位置减去第1个’_‘出现位置,此时还多了一个下划线’_',:表示源字符串,即要截取的字符串。

GitHub质检员 1万+

lumerical-环形谐振器

利用mode求解器优化得到所需的环的总长度,即环形器的半径,然后通过varFDTD得到光场分布和透过率.

m0_61776728的博客 2189

2、Oracle PL/SQL字符串分割截取

该文章是 PL/SQL基础(3):小专题 系列文章之一。 Oracle中的instr和substr函数 Oracle PL/SQL中可以通过instr(获取特定字符串的索引)和substr(截取字符串)函数的组合使用进行字符串的截取实现类似于MySQL中substring_index函数或C#语言的Split函数。首先来认识下Oracle中的instr和substr函数。 1、instr

豆芽菜 2万+

N32G003学习——第九章 第三节1 串口 发送

经过第九章前2节的学习,基础打下之后,开始敲代码。

qq_34525008的博客 1034

Ubuntu环境下读取罗技G29方向盘信息

Ubuntu环境下读取罗技G29方向盘信息

工大机器人工作室 3483

Oracle中substr函数和instr函数的结合使用

1、instr函数是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置。 函数定义如下: /*  * 返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始)  * @param string 源字符串  * @param substring 子字符串  * @param position 检索位置,可省略(默认为1),参数为正时,从左向右检

蓝沐的博客 2万+

芒果YOLOv12改进13:独家原创改进最新 CFNet 核心结构|即插即用 | 首发改进显著提升检测性能,小目标检测涨点必备

芒果YOLOv12改进13:独家原创改进最新 CFNet 核心结构|即插即用 | 首发改进显著提升检测性能,小目标检测涨点必备

包括YOLOv5、YOLOv7、YOLOv8等模型改进 289

Oracle中的Substr( )函数和Instr()函数

SELECT Reverse(Substr(Reverse('843|0|17.76|0|微信支付'), 1, Instr(Reverse('843|0|17.76|0|微信支付'), '|') - 1))FROM dual;m为正数,代表截取从左往右的第m位开始,m为负数,代表截取从右往左的第n位开始,m为0是与m为1等效。select Substr('843|0|17.76|0|微信支付||', 1, Instr('843|0|17.76|0|微信支付||', '||')-1)from dual;

weixin_62483242的博客 1050

海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(1)

海思SS928,SS926以及Hi3519dv500,hi3516dv500下的yolov7模型部署推理系列

Littro Innovations 3088

寻路最终版哦

相信大家用unity3d寻路的时候,一定会碰到多人

yxriyin的专栏 6956

ORACLE SUBSTR函数和INSTR函数的结合

ORACLE SUBSTR函数和INSTR函数的结合 编写脚本时,经常会用到SUBSTR函数和INSTR函数结合使用,往往会出现"意想不到"的效果,这里不再介绍SUBSTR函数和INSTR函数的用法,主要讲下个人在实际开发中的案例供大家参考. 前景: 现有按照树形结构存储在ORACLE数据库中的一组组织结构数据,例如: 一级部门-二级部门-三级部门 需求: 需截取数据,例如:二级部门-三级部门 技...

qq_37980551的博客 1319

PyTorch实战(30)——使用TorchScript和ONNX导出通用PyTorch模型

在本节中,我们将深入探讨使用 TorchScript 导出 PyTorch 模型。通过序列化,TorchScript 使模型与 Python 生态系统独立,从而使得模型可以在其他环境中加载,例如基于 C++ 的环境。我们还跨越 Torch 框架与 Python 生态的边界,研究机器学习通用开放格式 ONNX,该技术能帮助我们将 PyTorch 训练的模型导出至非 PyTorch 甚至非 Python 环境。

盼小辉丶的博客 3572

oracle 拆分字段 函数,oracle函数之instr()和substr()实现列拆分

1、INSTR()函数在Oracle中可以使用instr()函数对某个字符串进行判断,判断其是否含有指定的字符。 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。语法:instr(sourceString,destString,start,appearPosition)instr('源字符串','目标字符串','开始位置','第几次出现')其中,sourceString代表源字符串;...

weixin_33344629的博客 2005

PyTorch 面试题及参考答案(精选100道)

模块是 PyTorch 中用于自动求导的核心模块。它为张量上的所有操作提供了自动求导的功能。在深度学习中,反向传播是一种用于计算损失函数相对于模型参数的梯度的算法。通过梯度,我们可以使用优化算法(如随机梯度下降)来更新模型的参数,从而最小化损失函数。模块的主要作用就是自动计算这些梯度。当我们创建一个张量时,如果将其属性设置为True,那么 PyTorch 会跟踪该张量上的所有操作。在完成前向传播计算出损失函数后,调用方法,模块会自动根据链式法则反向传播计算出所有需要求导的张量的梯度。

大模型大数据攻城狮的专栏 1681

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

oracle8i substr,Oracle中的INSTR,NVL和SUBSTR函数的用法详解

Oracle中INSTR的用法:INSTR方法的格式为INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号)返回找到的位置,如果找不到则返回0.例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 在字符串中查找'OR',从第三个字符位置开始查找"OR",取第三个字后第2个匹配项的位置。默认查...

weixin_32467749的博客 245

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

oracle的substr和instr函数的用法

1 oracle的substr函数的用法  取得字符串中指定起始位置和长度的字符串   substr( string, start_position, [ length ] )  如: substr('This is a test', 6, 2)='is' substr('This is a test', 6)='is a test' substr('Tec

piaoxuan1987 1048

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

oracle instr null,sql常用函数instr()和substr()

在Oracle中可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。其语法为:instr(sourceString,destString,start,appearPosition).instr('源字符串', '目标字符串' ,'开始位置','第几次出现')其中sourceString代表源字符串;destString代表想聪源字符串中查找的子串;start代表查找的开始位置,...

weixin_36143628的博客 723

oracle+substr函数分割,oracle函数之instr()和substr()实现列拆分

1、INSTR()函数在Oracle中可以使用instr()函数对某个字符串进行判断,判断其是否含有指定的字符。 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。语法:instr(sourceString,destString,start,appearPosition)instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')其中,sourceString代表源字...

weixin_39917718的博客 315

oracle 函数_oracle函数--INSTR、SUBSTR使用说明和实例讲解

概述oracle一般截取某一个字符之前或之后的值都会用到substr()和instr()函数,抽时间整理了这方面,下面做个简单介绍。1、instr函数这是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置。函数定义如下:/* * 返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始) * @param string 源字符串 * @param subs...

weixin_39841825的博客 256

Oracle long instr,oracle的常用函数 instr() 和substr()函数

from:http://1055592535.iteye.com/blog/1676235在Oracle中可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。语法:instr(sourceString,destString,start,appearPosition)instr(‘源字符串‘ , ‘目标字符串‘ ,‘开始...

weixin_33485981的博客 270

Oracle中的INSTR,NVL和SUBSTR函数的用法代码实例

这篇文章主要介绍了Oracle中的INSTR,NVL和SUBSTR函数的用法详解,需要的朋友可以参考下Oracle中INSTR的用法:INSTR方法的格式为INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号)返回找到的位置,如果找不到则返回0.例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR

小朱 995

oracle中的instr和substr函数

oracle instr substr

xiongxianze的博客 867

java中instr函数_Oracle的substr和instr函数简单用法

Oracle的substr函数简单用法substr(字符串,截取开始位置,截取长度) //返回截取的字substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符substr('Hello World',2,4) //...

weixin_35968240的博客 525

oracle 的几个函数instr(),substr(),nvl()

instr(),substr(),nvl()这几个函数通常是联合起来使用 1、INSTR方法的格式为 INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 第三个参数默认 1,如果为负数,表示从右往左,但是返回的位置是从左开始数的 第四个参数默认1,可以不填 例如select instr('2wrweds232','

cc_yy_zh的博客 1629

oracle的常用函数 instr() 和substr()函数

在Oracle中 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。 语法: instr(sourceString,destString,start,appearPosition) instr('源字符串' , '目标字符串' ,'开始位置','第几次出现') 其中sourceStr...

iteye_8954的博客 1653
上一篇: docker集群初始化manager节点报错:could not choose an IP address to advertise
下一篇: 用docker安装weblogic
howie_lu
博客等级 码龄9年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值