转载请注明出处:http://blog.youkuaiyun.com/anxpp/article/details/51550479,谢谢!
1、概述
本文介绍String类型及相关的函数,基于当前最新的Oracle 12c 为基础作介绍。
下文将字符串简称为串。
Oracle函数的工作方式有两种:
1、根据旧的对象创建新的对象——他们对原来的信息进行修改,如改变字母的大小写。
2、告诉用户有关的信息,如一个单词或句子中有几个字符。
后续会更新另外两种处理文本的方式:Oracle中的正则表达式 和 Oracle Text工具,等文章编辑完成,会在此处添加链接。
Oracle中主要有两种字符串类型:CHAR和VARCHAR2,他们以字母,标点,数字和空格的混合形式存在。
CHAR串始终为定长的,如果设置的值长度小于CHAR列的串值,会自动填充空格。在比较CHAR串时,会为双方都补满空格后再进行比较。
VARCHAR2数据类型为边长的串(VARCHAR与VARCHAR2为同义词)。
2、字符串处理函数
2.1、总览
见下表:
2.2、连接符||及CONCAT函数
可以连接两个列名或者常量。
比如:
- SELECT firstName||lastName FROM USER;
如果姓名为中文还好,但是如果是英文的,这样连接会导致读起来比较困难,所以可以在中间加上常量“空格”:
- SELECT firstName||' '||lastName FROM USER;
使用CONCAT函数也能达到同样的效果:
- SELECT CONCAT(firstName,lastName) FROM USER;
结果:
但是CONCAT函数符合ANSI SQL标准,所以适合更多不同的数据库,||是Oracle专有的,使用起来更简洁。
2.3、格式统一:RPAD和LPAD
RPAD允许在列的右边填充一组字符,填充的字符可以为任何字符。LPAD从左边添加。
使用方式:
RPAD(string,length[,'set'])
LPAD(string,length[,'set'])
这里的string是数据库中的字符串列或常量,length是填充后的长度,set是用来填充的字符串。如果方括号中的内容省略了,会默认使用空格填充。
RPAD的使用:
- SELECT rpad(lastname,10,'_') as name from users;
结果:
LPAD的使用:
- SELECT lpad(lastname,10) as name from users;
结果: