首页 > 代码库 > 【ORACLE】oracle字符串对象的处理

【ORACLE】oracle字符串对象的处理

2.1 char字段,varchar2字段

(1)定义字段长度char(10)表示字段可以存放10个英文字符(不管任何编码方式,英文字符都占10个字节吗?),且分配物理空间的时候,总是分配10个字符的位置。定义可变长varchar(10)表示最多可以存放10个英文字符,且分配物理空间的是,根据实际字段的数据,分配实际的空间

(2)charvarchar2的最长字段类型长度

         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字符串对象的处理