首页 > 代码库 > 【ORACLE】oracle字符串对象的处理
【ORACLE】oracle字符串对象的处理
2.1 char字段,varchar2字段
(1)定义字段长度char(10)表示字段可以存放10个英文字符(不管任何编码方式,英文字符都占10个字节吗?),且分配物理空间的时候,总是分配10个字符的位置。定义可变长varchar(10)表示最多可以存放10个英文字符,且分配物理空间的是,根据实际字段的数据,分配实际的空间
(2)char和varchar2的最长字段类型长度
Char(2000),varchar2(4000)
(3)varchar字段的中文问题。
定义字段为varchar(2),插入中文字符”你好”是插不进去的。因为”你好”占用的空间,超过了最大的空间两个英文字符空间
一个英文字符占用几个字节,一个中文字符占用几个字节,要看字符的编码规则。
查看编码的函数为:
select userenv(‘language‘) from dual;
设计表的时候,一般按照中文字符数量的三倍来设计varchar2字段的容量。
(4)nvarchar类型
Nvarchar2类型解决varchar2类型的中文问题,nvarchar(2),不管中文字符,还是英文字符都能最多只能存放两个字符。
2.2 字符的处理函数
(1)trim,ltrim,rtrim去除字符串头或尾的空格
(2)lpad,rpad函数默认按照空格,前或者后填充到一定长度
例如,
select lpad(lname,50,‘*‘) from foo_6;
select lpad(lname,50) from foo_6;
(1) 利用substr()函数获取第n字符后面的所有字符(oracle中字符下标从1开始计算)
Substr(lname,3);
可以定义获取字符的长度5,
例如
Substr(lname,3,5)
(2) substr起始位置下标,可以为负数,表示从后面往前数的位置,取字符串还是往后取。
例如,
Substr(lname,-5)表示取最后的五个字符。
(3) instr函数找到字符的下标位置
insrt(lname,’查找字符’,起始位置)
可以查找第几次出现的位置,
例如
Insr(lname,’查看字符’,起始位置,第几次出现)
(4) length函数获取字符的个数
length(“你好”) length(‘ab’)返回值都是2,表示两个字符,字符下标最大为2,不表示占用的字节数量。
3 oracle数字对象
Number(10)有效数字为10
Number(10,2)有效数字为10,含2位小数
【ORACLE】oracle字符串对象的处理