在windows 7 64位上安装Oracle 12c没有设定字符集,采用的是操作系统默认字符集:WE8MSWIN1252,将字符集修改为:ZHS16GBK。由于过程不可逆,首先需要备份数据库。

1.数据库全备

2.查询当前字符集

  1. PARAMETER VALUE
  2. ------------------------------------------------------------ ------------------------------------------------------------
  3. NLS_CHARACTERSET WE8MSWIN1252
  4.  
  5. SQL>

3.关闭数据库

  1. SQL> shutdown immediate;
  2. Database closed.
  3. Database dismounted.
  4. ORACLE instance shut down.

4.启动数据库到mount状态

  1. SQL> startup mount
  2. ORACLE instance started.
  3.  
  4. Total System Global Area 4982833152 bytes
  5. Fixed Size 2934600 bytes
  6. Variable Size 2734688440 bytes
  7. Database Buffers 2231369728 bytes
  8. Redo Buffers 13840384 bytes
  9. Database mounted.

5.限制session

  1. SQL> alter system enable restricted session;
  2.  
  3. System altered.

6.查询相关参数并修改,防止有任务自动启动执行

  1. SQL> show parameter job_queue_processes;
  2.  
  3. NAME TYPE VALUE
  4. ------------------------------------ ----------- ------------------------------
  5. job_queue_processes integer 1000
  1. SQL> show parameter aq_tm_processes;
  2.  
  3. NAME TYPE VALUE
  4. ------------------------------------ ----------- ------------------------------
  5. aq_tm_processes integer 1
  1. SQL> alter system set job_queue_processes=0;
  2.  
  3. System altered.
  1. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
  2.  
  3. System altered.

7.打开数据库

  1. SQL> alter database open ;
  2.  
  3. Database altered.

8.修改字符集

  1. SQL> alter database character set AL32UTF8;
  2. alter database character set AL32UTF8
  3. *
  4. ERROR at line 1:
  5. ORA-12712: new character set must be a superset of old character set

出现错误提示,新字符集必须是老字符集的超集,也就原来字符集是新字符集的子集,可以再Oracle官方文档上查询字符集包含关系。下面使用Oracle内部命令internal_use,跳过超集检查,生产环境不建议使用此方法。

  1. SQL> alter database character set internal_use AL32UTF8;
  2.  
  3. Database altered.

9.查询当前字符集

  1. SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
  2.  
  3. PARAMETER VALUE
  4. ------------------------------------------------------------ ------------------------------------------------------------
  5. NLS_CHARACTERSET AL32UTF8

10.关闭数据库

  1. SQL> shutdown immediate
  2.  
  3. SQL> shutdown immediate
  4. Database closed.
  5. Database dismounted.
  6. ORACLE instance shut down.

11.启动数据库到mount状态

  1. SQL> startup mount
  2. ORACLE instance started.
  3.  
  4. Total System Global Area 4982833152 bytes
  5. Fixed Size 2934600 bytes
  6. Variable Size 2734688440 bytes
  7. Database Buffers 2231369728 bytes
  8. Redo Buffers 13840384 bytes
  9. Database mounted.

12.将相关参数改回原来值

  1. SQL> alter system set job_queue_processes=1000;
  2.  
  3. System altered.
  1. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=1;
  2.  
  3. System altered.

13.打开数据库

  1. SQL> alter database open ;
  2.  
  3. Database altered.

原文地址:

Oracle 12c中文乱码,修改字符集的方法

Oracle 12c中文乱码,修改字符集的方法的更多相关文章

  1. qt creator修改程序编码(解决中文乱码问题)的方法

    qt creator修改程序编码(解决中文乱码问题)的方法 qt creator修改程序编码的功能有几处. 1.edit - select encoding 选择载入(显示)编码和储存编码,其中GB2 ...

  2. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法   JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...

  3. mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别

    一.查看mysql 字符集设置情况 使用Navicat for Mysql查看工具,打开命令列界面,输入show variables like '%char%';如下图,查看当前mysql字符集设置情 ...

  4. oracle查看字符集和修改字符集

    oracle查看字符集和修改字符集 : 查看数据库服务器的字符集: select userenv('language') from dual ; 登陆用dba: 停掉数据库 : shutdown im ...

  5. Oracle导入中文乱码解决办法

    Oracle导入中文乱码解决办法 一.确保各个客户端字符集的编码同服务器字符集编码一致 1-       确定sqlplus字符集编码,如果是windows设置环境变量. 2-       确保Sec ...

  6. windows下mysql中文乱码, 配置解决方法

    内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内 ...

  7. Kali_Linux 中文乱码 修改更新源及更新问题

    Kali_Linux 中文乱码 修改更新源及更新问题 中文乱码问题 kali默认没有中文字符 当以中文安装或者切换编码换为中文后会出现乱码的情况 解决方法: 确定locales已经安装好, 使用 ap ...

  8. resin后台输出中文乱码的解决的方法!

    近期从tomcat移植到resin,发现这东西不错啊! 仅仅是后台输出时有时候中文会乱码. 如今找到resin后台输出中文乱码的解决的方法: 编辑conf/resin.con文件: <!--ja ...

  9. 解决 php7 cli 模式下中文乱码的两中方法

    解决 php7 cli 模式下中文乱码的两中方法1. 给PHP文件开头加上 exec('chcp 936'); 然后把该文件以 ANSI 格式编码2. 在 php.ini 中设置 default_ch ...

随机推荐

  1. python 全栈开发,Day64(视图,触发器,函数,存储过程,事务)

    昨日内容回顾 pymysql:属于python的一个模块 pip3 install pymysql conn = pymysql.connect(...,charset = 'uft8') 创建游标 ...

  2. 步步为营-20-XML

    说明:可扩展标记语言 eXtensible Markup Language--区分大小写 涉及到的知识点:DOM 文档对象模型 文本文件存储数据缺点:1,不易读取.2,易乱码 1 通过代码创建一个xm ...

  3. 基于Linux平台的自动化运维Devops-----之自动化系统部署

    一.自动化运维的背景网站业务上线,需要运维人员在短时间内完成几百台服务器部署,包括系统安装.系统初始化.软件的安装与配置.性能的监控......所谓运维自动化,即在最少的人工干预下,利用脚本与第三方工 ...

  4. DDD领域模型AutoMapper实现DTO(七)

    DTO的应用场景: 定义产品类: public class Product { public string ProductName { get; set; } public decimal Produ ...

  5. ElasticSearch - query vs filter

    query vs filter 来自stackoverflow Stackoverflow - queries-vs-filters Question 题主希望知道Query和Filter的区别 An ...

  6. 【NPM】npm ERR! Unexpected end of JSON input while parsing near '...",'解决方案

    问题描述 今天安装项目依赖npm install 的时候出现错误: npm ERR! Unexpected end of JSON input while parsing near '...e&quo ...

  7. js中setInterval和setTimeout区别和用法

    setTimeout setTimeout() //- 在指定时间后执行代码clearTimeout() //- 取消 setTimeout(),clearTimeout()方法的参数必须是由setT ...

  8. CSS 1. 选择器

    1.css的介绍 CSS是指层叠样式表(Cascading Style Sheets),样式定义如何显示HTML元素,样式通常又会存在于样式表中.也就是说把HTML元素的样式都统一收集起来写在一个地方 ...

  9. 【Java】 剑指offer(22) 链表中倒数第k个结点

    正文 本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的 ...

  10. 015.Linux系统删根数据恢复

    重要声明: 本文档所有思路来自于誉天教育,由本人(木二)在实验环境验证通过: 您应当通过誉天邹老师或本人提供的其他授权通道下载.获取本文档,且仅能用于自身的合法合规的业务活动: 本文档的内容仅供学习交 ...