Oracle数据库如果出现乱码,需要查看是否时字符集不一致导致乱码,这样解决

1、如果出现乱码,需要查看是否时字符集不一致导致乱码

以修改为ZHS16GBK字符集为例,具体字符集需要sql查询。

Oracle查看字符集

bash 复制代码
SELECT * FROM NLS_DATABASE_PARAMETERS p where p.PARAMETER='NLS_CHARACTERSET';
SELECT USERENV('language') FROM DUAL;

1.首先以sysdba的身份登录上去 conn /as sysdba

bash 复制代码
sqlplus / as sysdba

2.关闭数据库

bash 复制代码
SQL> shutdown immediate

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

bash 复制代码
SQL> startup mount

4.设置session

bash 复制代码
 SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
     
 SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
     
 SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

5.启动数据库

bash 复制代码
SQL> alter database open;

6.修改字符集

bash 复制代码
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

可能会报错,提示我们的字符集:新字符集必须为旧字符集的超集,跳过超集检查做更改:

bash 复制代码
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

这条语句就可以了,TERNAL_USE提供的帮助就会使oracle绕过了子集与超集的验证,这条语句和上面的语句内部操作时完全相同的。

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

bash 复制代码
 SQL>shutdown immediate
     
    SQL> startup
相关推荐
仍然.11 分钟前
MySQL--数据库基础
数据库·mysql
难得的我们14 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
济61716 分钟前
linux 系统移植(第十八期)----根文件系统简介---- Ubuntu20.04
数据库·postgresql
檀越剑指大厂20 分钟前
时序数据库选型指南
数据库·时序数据库
空空kkk20 分钟前
spring boot——配置文件
java·数据库·spring boot
醒醒酒27 分钟前
sqli-labs Less1-4 新手修仙版
数据库·计算机网络·安全·web安全·网络安全·oracle
是三好29 分钟前
MySQL
数据库·mysql·oracle
砚边数影31 分钟前
线性回归实战(一):房价预测数据集入库KingbaseES,表结构设计
java·数据库·人工智能·深度学习·机器学习·线性回归·金仓数据库
数据知道36 分钟前
PostgreSQL 实战:数组的增删改查与索引优化详解
数据库·postgresql
OceanBase数据库官方博客1 小时前
深度解读 OceanBase 多模一体化能力
数据库·ai·oceanbase·分布式数据库