Oracle的字符集AL32UTF8与UTF8的区别,字符集修改记录

本文详细对比了AL32UTF8与UTF8、UTF8与GBK的编码方式在Oracle数据库中的应用差异,包括它们的字节占用情况及如何在Oracle中修改数据库字符集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. AL32UTF8与UTF8的区别


    其实AL32UTF8就是UTF8的升级(自我认为),AL32UTF8是oracle 9i版本才出现的,而UTF8则在很早以前就已经存在了,AL32UTF8只是又增加了一些新的补充字符而已。

    所以他们的区别其实不是很大,这里要注意一点,如果使用oracle 9i之前的版本用AL32UTF8的编码集可能会出现问题。

  2. UFT8与GBK的区别


    主要的区别在于他们占用的字节不同(汉字),UTF占用的是三个字节,而GBK怎么占用两个字节。

    例如:oracle中的varchar2(30)类型,如果是utf8,则只能输入10汉字;而gbk则可以输入15个汉字。

  3. oracle数据库的字符集修改


    首先推荐使用cmd来进行操作,那为什么不用sqlplus呢?主要原因就是cmd中可粘贴(嘿嘿)

1.利用cmd登入数据库
    //as sysdba很重要,一定要加上
	sqlplus 用户名/密码@ip地址:1521/实例 as sysdba;
例:sqlplus sys/admin@localhost:1521/orcl as sysdba;

2.首先查看oracle数据库的编码
	select userenv('language') from dual;

3.关闭数据库
	shutdown immediate;

4.以mount打来数据库
	startup mount;

5.设置session 
	ALTER SYSTEM ENABLE RESTRICTED SESSION;
	ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
	ALTER SYSTEM SET AQ_TM_PROCESSES=0;

6.启动数据库
	alter database open;

7.修改字符集
	ALTER DATABASE CHARACTER SET ZHS16GBK;
    //如果提示“新字符集必须为旧字符集的超集”,请添加“INTERNAL_USE”
    ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

8.关闭,重新启动
	shutdown immediate;
	startup

注:如果执行到第3,4步出错的话,那么关闭与数据库连接的一切东西,重启服务。

重新开始,只执行1,5,7步完成后,再重启数据库实例服务(OracleServiceORCL)。

查看字符集,成功!!!

如果解决了大家的问题,希望大家多多评论,或者有什么疑问也可以评论出来,大家一起探讨!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值