解决Oracle中字符集导致一个汉字占用3个字节的问题
2014-11-26 17:43
691 查看
解决Oracle中字符集导致一个汉字占用3个字节的问题
新安装Oracle数据库时引起的问题
由于在安装Oracle数据库时选择安装的字符集一般为默认字符集,
可能不同计算机安装后,测试汉字占用字节数有的为3个字节,有的为2个字节,
由于这个原因,表名长度和字段名长度也会受到影响,
明显变化就是原来可创建的表名或字段名不能创建了,说超过长度限制了。
解决的方法就是把数据库的字符集改一下,如汉字占用字节数由2个字节变为3个字节等。
解决步骤为:
运行下语句,然后在Sys用户中表props$查看字符集“AL32UTF8”已改为“ZHS16GBK”
sqlplus /nolog
SQL>connection sys@tns/password as sysdba;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE;
新安装Oracle数据库时引起的问题
由于在安装Oracle数据库时选择安装的字符集一般为默认字符集,
可能不同计算机安装后,测试汉字占用字节数有的为3个字节,有的为2个字节,
由于这个原因,表名长度和字段名长度也会受到影响,
明显变化就是原来可创建的表名或字段名不能创建了,说超过长度限制了。
解决的方法就是把数据库的字符集改一下,如汉字占用字节数由2个字节变为3个字节等。
解决步骤为:
运行下语句,然后在Sys用户中表props$查看字符集“AL32UTF8”已改为“ZHS16GBK”
sqlplus /nolog
SQL>connection sys@tns/password as sysdba;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE;
相关文章推荐
- Oracle 一个中文汉字 占用几个字节,由Oracle中字符集编码决定
- Oracle 一个中文汉字 占用几个字节,由Oracle中字符集编码决定
- Oracle一个中文汉字占用几个字节---小笔记
- 解决Oracle因安装时未设定字符集导致中文乱码问题
- Oracle中一个汉字占用字节长度
- Oracle一个中文汉字占用几个字节
- JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题
- Oracle一个中文汉字占用几个字节
- 关于Oracle一个汉字代表几个字节的问题
- Oracle一个中文汉字占用几个字节
- Oracle一个中文汉字占用几个字节
- Oracle一个中文汉字占用几个字节
- Oracle 汉字占用几个字节问题
- Oracle 一个汉语汉字 占用几个字节
- 关于Oracle一个汉字代表几个字节的问题
- Oracle一个中文汉字占用几个字节
- JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题
- Oracle一个中文汉字占用几个字节
- Oracle 一个中文汉字 占用几个字节
- Oracle一个UTF8字符集相关问题的解决