Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1168380
  • 博文数量: 178
  • 博客积分: 2776
  • 博客等级: 少校
  • 技术积分: 2809
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-22 15:36
文章分类

全部博文(178)

文章存档

2014年(3)

2013年(66)

2012年(109)

分类: Oracle

2013-03-19 15:30:47

toad for oracle 11substr substrb instr instrb length lengthb

instr(string1,instring2[,start_position[,nth_appearance]])
string1:被搜索的字符串
string2:在string1里面寻找的字符串
start_position:从string1中开始搜索的位置,这是个可选参数,默认为1。
sting1中第一个字符的位置为1。如果这个参数为一个负数,那么搜索将从string1的末尾开始,并向string1的开始位置进行搜索。
nth_appearance:string2在string1中出现的次数,这是一个可选参数,默认值为1.
注意:如果string2未在string1中出现,那么instr函数的返回值为0。
select instr('hongdada','d') from dual; //5
select instr('hongdada','d',1,2) from dual; //7
select instr('hongdada','d',-1) from dual; //7
select instr('hongdada','d',-1,2) from dual; //5
select instr('hongdada','d',6) from dual; //7
select length('hongda') from dual; //6
select lengthb('hongda') from dual; //6
select length('洪大') from dual; //2
select lengthb('洪大') from dual; //6 我还以为是4呢,不晓得为什么是6,我在plsql中测的

select substr(1234567890,5,3) from dual; //567
select substrb(1234567890,5,3) from dual; //567
select length('抢钱,抢粮,抢女人') from dual; //9
select lengthb('抢钱,抢粮,抢女人') from dual; //27 这行的标点是中文标点
select lengthb('抢钱,抢粮,抢女人') from dual; //23 这行的标点是英文标点 还是看的出来的,紧凑的是英文的,反之是中文的
select substr('抢钱,抢粮,抢女人',5,3) from dual; //粮,抢
select substrb('抢钱,抢粮,抢女人',5,18) from dual; //,抢粮,抢
select substrb('抢钱,抢粮,抢女人',6,18) from dual; //,抢粮,抢
select substrb('抢钱,抢粮,抢女人',5,18) from dual; // ,抢粮,抢女

select substrb('抢钱,抢粮,抢女人',0,18) from dual; //抢钱,抢粮,
select substrb('抢钱,抢粮,抢女人',1,18) from dual; //抢钱,抢粮, 当从1个字符开始时,直接忽略
select substrb('抢钱,抢粮,抢女人',2,18) from dual; // 钱,抢粮, 前面有2个空格,后面有1个空格 当从2个字符开始时,第一个汉字就没了,前面。。。
select substrb('抢钱,抢粮,抢女人',3,18) from dual; // 钱,抢粮, 前面有1个空格,后面有2个空格 当从3个字符开始时,。。。
select substrb('抢钱,抢粮,抢女人',4,18) from dual; //钱,抢粮,抢


推测oracle中这种带b的函数对老外没分别,对我们中国人的汉字,中文标点才有用,

例:length把汉字,英文都看成一个来计算,

 lengthb 把汉字,中文标点当成3个来计算,英文的还是一个,我不晓得为啥是3个,反正plsql上是这么显示的
阅读(2599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~