当前位置: 代码网 > it编程>数据库>Oracle > Oracle 12c修改字符集的方法(解决数据导入后中文乱码及ORA-12899错误)

Oracle 12c修改字符集的方法(解决数据导入后中文乱码及ORA-12899错误)

2024年05月26日 Oracle 我要评论
之前在windows上安装的oracle,现在迁移到linux上,把dmp文件导入linux的时候发现字段的注释和存储过程中的中文是问号?,而且导入的时候还会报ora-12899错误。其实这些都是字符

之前在windows上安装的oracle,现在迁移到linux上,把dmp文件导入linux的时候发现字段的注释和存储过程中的中文是问号?,而且导入的时候还会报ora-12899错误。其实这些都是字符集问题。

1、查询当前字符集

select * from nls_database_parameters where parameter='nls_characterset';

如果不是zhs16gbk说明确实是字符集问题。

2、关闭数据库

sql> shutdown immediate
database closed.
database dismounted.
oracle instance shut down.

3、启动数据库到mount状态

sql> startup mount
oracle instance started.
total system global area  205520896 bytes
fixed size                  1266608 bytes
variable size             100666448 bytes
database buffers          100663296 bytes
redo buffers                2924544 bytes
database mounted.

4、限制session

sql> alter system enable restricted session;
system altered.

5、禁用作业调度进程,确保无进程调用数据库

先查询之前的值

sql> show parameter job_queue_processes;

把参数置为0

sql> alter system set job_queue_processes=0;
system altered.

6、打开数据库

alter database open;

7、修改字符集

sql> alter database character set internal_use zhs16gbk;          
database altered.

8、查询当前字符集

sql> select * from nls_database_parameters where parameter='nls_characterset';
parameter                                value
---------------------------------------- ----------------------------------------
nls_characterset                         zhs16gbk

9、重复2关闭数据库和3启动数据库到mount状态并将作业调度进程参数调回之前的值

sql> shutdown immediate
database closed.
database dismounted.
oracle instance shut down.
 
sql> startup mount
oracle instance started.
total system global area  205520896 bytes
fixed size                  1266608 bytes
variable size             100666448 bytes
database buffers          100663296 bytes
redo buffers                2924544 bytes
database mounted.
 
sql> alter system set job_queue_processes=110;
system altered.

10、恢复session

sql> alter system disable restricted session;
system altered.

11、打开数据库

sql> alter database open;
database altered.

到此这篇关于oracle 12c修改字符集的方法(解决数据导入后中文乱码及ora-12899错误)的文章就介绍到这了,更多相关oracle 12c修改字符集内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com