修改oracle上边的字符集,需要用到DBA数据库管理员的权限,再修改字符集时要注意到修改后的字符集只能范围变大(例如:当前的字符集是GBK,那你修改后可以是UTF-8就是说后者只能比前者大,不能小.因为字符集都是向下兼容的)
步骤:
第一步:使用DBA身份登录
先以绕过日志的方式登录
在以
然后使用如图命令关闭数据库
1>shutdown immediate;
2>startup mount;
3>alter system enable restricted session;
4>alter system set job_queue_processes=0;:
5>alter system set aq_tm_processes=0;
6>alter database open;
7.1>alter database character set utf8
7.2>alter database character set internal_use utf8;
8>SHUTDOWN immediate;
9>startup;
1: (把database停了)
2: (把database重开去可更改情況)
3:开启限制会话模式(alter system disable restricted session;取消限制会话模式 )
4:job_queue_processes=0:取值范围为0到1000,总共可创建多少个job进程由job_queue_processes参数来决定。
当设定该值为0的时候则任意方式创建 的job都不会运行
5:我们在修改字符集时,会把4,5两个processes参数设置为0,而第五个命令本来默认只就是0;(他们防止有任务自动启动执行,一般不做那个操作也没关系)
6:oracle数据库启动分三个步骤
nomount,mount,open;
startup是数据库从开始阶段的启动,需要经过上述三个步骤;
alter database open是数据库处于mount状态,从mount状态打开数据库的命令
7.1:修改数据库的字符集
7.2:发生报错内容为新字符集必须为就字符集的超集时,使用这种方法:跳过超集检测
8:(把database停了)
9:运行数据库
(这时综合好多大神的答案:希望能帮助到那些和我一样的人)