oracle的编码,Oracle编码格式 |
您所在的位置:网站首页 › oracle字符集编码格式 › oracle的编码,Oracle编码格式 |
oracle 的编码 ,Oracle 编码格式 select value from NLS_DATABASE_PARAMETERS where parameter='NLS_CHARACTERSET'; NLS_CHARACTERSET(“字符集”)定义了“普通”的 CHAR, VARCHAR2, LONG 以及 CLOB 字段的编码。 NLS_NCHAR_CHARACTERSET(“国家字符集”)定义了 NCHAR, NVARCHAR2 以及 NCLOB 字段的编码。从 9i 以后都是 Unicode 编码。如果没有使⽤ NCHAR, NVARCHAR2 以及 NCLOB 字段,那么 NLS_NCHAR_CHARACTERSET 的设置不会被使⽤或者说不相 关。 注意:数据库的NLS_CHARACTERSET 为AL32UTF8,即⼀个汉字占⽤三到四个字节。如果NLS_CHARACTERSET为ZHS16GBK, 则⼀个字符占⽤两个字节。 ⼀ varchar,varchar2,nvarchar,nvarchar2 四个类型都属于变长字符类型, varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全⾓等字符占两字节,都是 ⾮ Unicode 字符数据,可以定义的最⼤长度为4000字节。 nvarchar和nvarchar2的区别和上⾯⼀样, 与上⾯区别在于是根据 Unicode 标准所进⾏的定义的类型(长度定义的是字符数,⽽不是字节数),通常⽤于⽀持多国语⾔类似系统的定义,可以定义的最⼤长度 为4000字符、8000字节。 1.char char的长度是固定的,⽐如说,你定义了char(20),即使你你插⼊abc,不⾜⼆⼗个字节,数据库也会在abc后⾯⾃动加上17个空格,以补 ⾜⼆⼗个字节; char是区分中英⽂的,中⽂在char中占两个字节,⽽英⽂占⼀个,所以char(20)你只能存20个字母或10个汉字。 char适⽤于长度⽐较固定的,⼀般不含中⽂的情况 2.varchar/varchar2 varchar是长度不固定的,⽐如说,你定义了varchar(20),当你插⼊abc,则在数据库中只占3个字节。 varchar同样区分中英⽂,这点同char。 varchar2基本上等同于varchar,它是oracle⾃⼰定义的⼀个⾮⼯业标准varchar,不同在于,varchar2⽤null代替varchar的空字符串 varchar/varchar2适⽤于长度不固定的,⼀般不含中⽂的情况 3.nvarchar/nvarchar2 nvarchar和nvarchar2是长度不固定的,不区分中英⽂,其长度定义的是字符数 nvarchar不区分中英⽂,⽐如说:你定义了nvarchar(20),你可以存⼊20个英⽂字母/汉字或中英⽂组合,这个20定义的是字符数⽽不是 字节数 nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英⽂字母也占两个字节 nvarchar/nvarchar2适⽤于存放中⽂ 1.NULL值(空值)。 a. char列的NULL值占⽤存储空间。char类型可以定义空字符串 b. varcahr列的NULL值不占⽤存储空间。varchar类型定义的空字符串按照null进⾏处理 c. 插⼊同样数量的NULL值,varchar列的插⼊效率明显⾼出char列。 2.插⼊数据 ⽆论插⼊数据涉及的列是否建⽴索引,char的效率都明显低于varchar。 3. 更新数据 如果更新的列上未建⽴索引,则char的效率低于varchar,差异不⼤;建⽴索引的话,效率较⾼。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |