《oracle每日一练》oracle截取字符的函数

转载

在Oracle中

可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。

在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。

语法: 
instr(sourceString,destString,start,appearPosition)

instr(‘源字符串‘ , ‘目标字符串‘ ,‘开始位置‘,‘第几次出现‘)

其中sourceString代表源字符串;

destString代表要从源字符串中查找的子串;

start代表查找的开始位置,这个参数可选的,默认为1;

appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的, 默认为1

如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。

返回值为:查找到的字符串的位置。

-------------------------------------------------------------

对于instr函数,我们经常这样使用:从一个字符串中查找指定子串的位置。例如:

SQL> select instr(‘abcdefgh‘,‘de‘) position from dual;

POSITION 
---------- 
   4 
从1开始算 d排第四所以返回4

SQL>select instr(‘abcdefghbc‘,‘bc‘,3) position from dual;

POSITION 
---------- 
  9 
从第3个字符开始算起 第3个字符是c,所以从3开始以后的字符串找查找bc,返回9

--------------------------- 
从第1个字符开始,查找第2次出现子串的位置 
SQL> select instr(‘qinyinglianqin‘,‘qin‘, 1, 2) position from dual; 
POSITION 
---------- 
  12

----------------------------------------------------------------------

SUBSTR()函数   
1.用处:是从给定的字符表达式或备注字段中返回一个子字符串。   

2.语法格式:SUBSTR(cExpression,nStartPosition [,nCharactersReturned])   

其中,cExpression指定要从其中返回字符串的字符表达式或备注字段;

nStartPosition用于指定返回的字符串在字符表达式或备注字段中的位置,

nCharactersReturned用于指定返回的字符数目,缺省时返回字符表达式的值结束前的全部字符。  

3.举例:STORE‘abcdefghijlkm‘ To mystring   

SUBSTR(mystring ,1,5) 显示 "abcde"  1 从第一个字符开始 截取的字符中,包括第一个字符 

SUBSTR(mystring ,6) 显示 "fghijklm"   

SUBSTR(mystring,-2)显示“km”   最右边一个字符是-1,最右边左边的字符是-2,然后默认是从左向有取剩下的全部的字符

SUBSTR(mystrng,-4)显示“jlkm”

时间: 2024-08-02 14:50:02

《oracle每日一练》oracle截取字符的函数的相关文章

《oracle每日一练Oracle DBLink连接数过多的问题(Ora-02020)》

本文转自Oracle DBLink连接数过多的问题(Ora-02020) 今天在处理资料同步问题,需要将其它几个DB Server的资料同步到一个目地资料库,采用的方式是:DBLink+Job ,然而在写过程编译时发生Ora-02020错误. 如下: 环境: 目地Server(别名:DB) 其它需要同步的Server(  DB1 , DB2,  DB3,  DB4  ,DB5) 做法: 建立各个Server的DB Link,然后在过程中同步相关的数据. 如代码: 1 create or repl

《oracle每日一练》免安装Oracle客户端使用PL/SQL

免安装Oracle客户端使用PL/SQL Oracle客户端挺招人烦的,部署连接它的应用通常需要先安装它的客户端,安装程序要求在目标机器上写注册表,假设你没有洁癖的话,你仍可能被下面的事情绊住:当你的机器上的其他程序依赖于x64的Oracle的程序,并且它们很有可能根本不是你写的,因此你还不敢随便乱动服务器,但是你可能需要一个PL/SQL用来在相同的环境下执行查询,这个时候你还是需要一个免安装的办法来处理这个问题. 1.下载Oracle Instant Client (32-bit) 因为我的P

《Oracle每日一练》Merge Into 语句代替Insert/Update在Oracle中的应用实战

转载自窃破天道 动机: 想在Oracle中用一条SQL语句直接进行Insert/Update的操作. 说明: 在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录时,就更新(Update),不存在数据时,就插入(Insert). 实战: 接下来我们有一个任务,有一个表T,有两个字段a,b,我们想在表T中做Insert/Update,如果存在,则更新T中b的值,如果不存在,则插入一条记录.在Microsoft的SQL语法中,很简单的一句判断就可

Oracle截取字符串的函数substr

Oracle截取字符串的函数substr substr Oracle中的截取字符串函数. 语法如下: substr( string, start_position, [ length ] ) 参数分析: string 字符串值 start_position 截取字符串的初始位置, Number型,start_position为负数时,表示从字符串右边数起. length 截取位数,Number型 其中,length为可选,如果length为空(即不填)则返回start_position后面的所有

oracle正则截取字符串的函数

现在有这么一个需求, 数据库中的一个手输的'籍贯'字段,要按一定的规范截取显示在报表上,比如,如果'籍贯'的内容是:'山东省潍坊市昌乐县', 那么报表里要显示为:'山东昌乐', 如果'籍贯'是山东省潍坊市寒亭区 那么就要出来 山东潍坊,简化的基本需求就是这样,取省一级和县一级,如果县一级是个区,那就取到市一级, 没有县一级的话,是数据不规范,但是先将就着取省一级和市一级. 要实现这个目的,第一是要从数据库里把相应的字段取出来, 第二是要写一个oracle截取字符串的函数处理下'籍贯'字段. 第一

解决oracle中sqlplus工具输错字符乱码,空格乱码的问题

这里用到的工具就是rlwrap 可以在此链接进行了解http://utopia.knoware.nl/~hlub/uck/rlwrap/ wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.42.tar.gz yum install -y readline readline-devel  这是所依赖的 tar xf rlwrap-0.42.tar.gz cd rlwrap-0.42 当然在编译之前可以查看一下readme和install

【Oracle】详解Oracle中NLS_LANG变量的使用

目录结构: contents structure [-] 关于NLS_LANG参数 NSL_LANG常用的值 在MS-DOS模式和Batch模式中设置NLS_LANG 注册表中NLS_LANG和系统环境变量中的NLS_LANG 参考文章 1,关于NLS_LANG参数 Oracle provides Globalization Support that enables users to interact with a database in their own language, as defin

HTML5每日一练之input新增加的5种其他类型1种标签应用

今天介绍input在HTML5中的最后5种类型,分别是:number,range,search,tel和color 注意:此种类型的input在Opera10+中效果为佳,Chrome中效果不是十分好,外观取决于浏览器 1.number类型: <form> <input id="w3cfuns_date" name="w3cfuns.com" type="number"/> <input type="sub

WindowsAPI每日一练(1) MessageBoxA

WindowsAPI每日一练系列 :https://www.cnblogs.com/LexMoon/category/1246238.html WindowsAPI每日一练(1) WinMain 要跟计算机进行交互,就需要计算机显示信息给人看到,或者发出声音给人听到,然后人看到或听到相应的信息后,再输入其它信息给计算机,这样就可以让计算机进行数据处理,把结果显示给我们.现在就来编写一个最简单的Windows应用程序,让它提示一行文字给我们看到,这就是简单的目标. 1 #include <wind