最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle中字符集的类型决定varchar2的字符长度

来源:动视网 责编:小采 时间:2020-11-09 12:21:57
文档

Oracle中字符集的类型决定varchar2的字符长度

Oracle中字符集的类型决定varchar2的字符长度:1.前几天往数据库表里面插入数据的报了一个这样的错误如下:SQLgt; insert into student values( 1.前几天往数据库表里面插入数据的报了一个这样的错误如下: SQL> insert into student values('中华人民共和',60);insert into
推荐度:
导读Oracle中字符集的类型决定varchar2的字符长度:1.前几天往数据库表里面插入数据的报了一个这样的错误如下:SQLgt; insert into student values( 1.前几天往数据库表里面插入数据的报了一个这样的错误如下: SQL> insert into student values('中华人民共和',60);insert into


1.前几天往数据库表里面插入数据的报了一个这样的错误如下:SQLgt; insert into student values(

1.前几天往数据库表里面插入数据的报了一个这样的错误如下:

SQL> insert into student values('中华人民共和',60);
insert into student values('中华人民共和',60)
*
第 1 行出现错误:
ORA-129: 列 "SYSTEM"."STUDENT"."NAME" 的值太大 (实际值: 12, 最大值: 6)

本来建立表的时候字符长度就设置为6了,可是插入六个中文的时候就是报错,表结构如下:

SQL> desc student;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
NAME VARCHAR2(6)
AGE NUMBER(3)

后来经过查了大量的资料之后发现,varchar2的长度是有字符集的类型决定的。

内容如下:

varchar2最大是4000字节,那么就看你的Oracle字符集,如果字符集是16位编码的,ZHS16GBK,那

么每个字符16位,2字节,可以容纳一个中文字符,所以可以容纳2000字符。如果是AL32UTF8编码的字符集,,三个字节为一个中文字符,那么只能存储 1333个字符。

2.查看字符集的类型的语句:

SQL> set wrap off;
SQL> select parameter,value from nls_database_parameters where parameter like 'NLS_CHARACTERSET';

PARAMETER VALUE
------------------------------ -------------------------------------------------
NLS_CHARACTERSET ZHS16GBK

所以上面插入的字符就只能是3个中文字符。

如果将上面的字符编码改为32位编码的,则只能存入1.5个中文字符。


3.10 查看新建数据库的字符集设置

SQL> set wrap off
SQL> set lines 1000
SQL> select * from nls_database_parameters;

4.可以用update props$ set value$='ZHS16GBK' where;
来修改字符集

5.如果字符集为AL32UTF8,可以看出下面的例子为,每个中文占用三个字节。

SQL> select lengthb('中') from dual;

LENGTHB('中')
-------------
3

文档

Oracle中字符集的类型决定varchar2的字符长度

Oracle中字符集的类型决定varchar2的字符长度:1.前几天往数据库表里面插入数据的报了一个这样的错误如下:SQLgt; insert into student values( 1.前几天往数据库表里面插入数据的报了一个这样的错误如下: SQL> insert into student values('中华人民共和',60);insert into
推荐度:
标签: 类型 oracle 字符
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top