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

 更新时间:2024年04月23日 11:32:10   作者:小码蚁啊  
之前在Windows上安装的Oracle,现在迁移到Linux上,把dmp文件导入Linux的时候发现字段的注释和存储过程中的中文是问号?,而且导入的时候还会报ORA-12899错误,其实这些都是字符集问题,所以本文给大家介绍了Oracle 12c修改字符集的方法,需要的朋友可以参考下

之前在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修改字符集内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • oracle 安装与SQLPLUS简单用法

    oracle 安装与SQLPLUS简单用法

    安装oracle数据库成功之后,会显示相关的数据库信息
    2009-06-06
  • [Oracle] 浅谈Lock与Latch

    [Oracle] 浅谈Lock与Latch

    以下是对Oracle中Lock与Latch的相同点以及不同点进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • Oracle数据库完整卸载的完整步骤

    Oracle数据库完整卸载的完整步骤

    oracle数据库卸载非常麻烦,经常卸载不彻底,导致重新装oracle非常麻烦,下面这篇文章主要给大家介绍了关于Oracle数据库完整卸载的完整步骤,需要的朋友可以参考下
    2023-03-03
  • Oracle 12.2监听无法启动解决方法

    Oracle 12.2监听无法启动解决方法

    这篇文章主要介绍了Oracle 12.2监听无法启动解决方法,需要的朋友可以参考下
    2017-11-11
  • Oracle DG 的归档缺失修复方法

    Oracle DG 的归档缺失修复方法

    文章介绍了Oracle DG归档缺失的修复方法,包括检查归档同步情况、查看GAP日志应用情况以及不同的修复思路,如归档还在主库、归档已在备库或归档已被删除等,感兴趣的朋友一起看看吧
    2025-02-02
  • Oracle动态视图v$active_session_history实战示例

    Oracle动态视图v$active_session_history实战示例

    这篇文章主要为大家介绍了Oracle动态视图v$active_session_history实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • MSSQL与Oracle数据库事务隔离级别与锁机制对比

    MSSQL与Oracle数据库事务隔离级别与锁机制对比

    事务隔离级别是并发控制的整体解决方案,其实际上是综合利用各种类型的锁和行版本控制,来解决并发问题。锁是数据库并发控制的内部机制,是基础。对用户来说,只有当事务隔离级别无法解决一些并发问题和需求时,才有必要在语句中手动设置锁。
    2014-08-08
  • Oracle Instr函数实例讲解

    Oracle Instr函数实例讲解

    instr函数为字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置,instr函数在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置,这篇文章主要介绍了Oracle Instr函数实例讲解,需要的朋友可以参考下
    2022-11-11
  • Oracle中 关于数据库存储过程和存储函数的使用

    Oracle中 关于数据库存储过程和存储函数的使用

    本篇文章,小编将为大家介绍,在Oracle中 关于数据库存储过程和存储函数的使用,有需要的朋友可以参考一下
    2013-04-04
  • 解决ORA-12154 TNS无法解析指定的连接标识符问题

    解决ORA-12154 TNS无法解析指定的连接标识符问题

    Oracle11g server 64bit服务器端安装在Windows Server2008 Enterprise上,安装Oracle11g client 32bit,通过SQL Plus以sysdba身份连接数据库,并且创建表空间、用户、授权成功,在连接数据库时出现问题,下面讲解ORA-12154无法解析指定的连接标识符问题,感兴趣的朋友一起看看
    2024-01-01

最新评论