欢迎投稿

今日深度:

【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位小数

www.htsjk.Com true http://www.htsjk.com/oracle/22945.html NewsArticle 【ORACLE】oracle字符串对象的处理 2.1 char字段,varchar2字段 (1)定义字段长度char(10)表示字段可以存放10个英文字符(不管任何编码方式,英文字符都占10个字节吗?),且分配物理空间的时候...
评论暂时关闭