查询数据库字符集编码

SELECT * FROM NLS_DATABASE_PARAMETERS p where p.PARAMETER='NLS_CHARACTERSET';

1.以sysdba的身份登录

sqlplus / as sysdba

2.关闭数据库

shutdown immediate

3.以mount(挂载方式)打开数据库

startup mount

4.设置session

ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;

5.启动数据库

alter database open;

6.修改字符集(改成你需要的字符集)

ALTER DATABASE CHARACTERSET ZHS16GBK;

这里可能会出错,提示ORA-12712: 新字符集必须为旧字符集的超集

跳过超集检查做更改:

ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

7.关闭数据库,重新启动

shutdown immediate
startup

8.再次查询,新数据库字符集已经变成ZHS16GBK,你以为这样就完了么?这个时候可能数据泵无法使用,我就碰到了。所以继续执行下边代码

execute sys.dbms_metadata_util.load_stylesheets;
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐