Oracle 数据库 字符集修改

原创 2016年08月29日 10:07:07


环境描述:

Linux 7.0  + Oracle 12C


问题描述:

将数据库NLS_CHARACTERSET与NLS_CHARACTERSET修改:

NLS_CHARACTERSET(是数据库字符集)由 AL32UTF8 修改为 ZHS16GBK

NLS_NCHAR_CHARACTERSET(是国家字符集) 由AL16UTF16 修改为 UTF8


解决办法:

代码:
conn /as sysdba 
shutdown immediate; 
startup mount 
ALTER SESSION SET SQL_TRACE=TRUE;
ALTER SYSTEM ENABLE RESTRICTED SESSION; 
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
ALTER SYSTEM SET AQ_TM_PROCESSES=0;  
ALTER DATABASE OPEN;
----NLS_CHARACTERSET是数据库字符集
ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; 
--NLS_NCHAR_CHARACTERSET是国家字符集
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
ALTER SESSION SET SQL_TRACE=FALSE;
select * from v$nls_parameters;  
SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET';
shutdown immediate; 
startup


操作如下:
SQL> conn / as sysdba
Connected.
SQL> SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET';

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
AL32UTF8

NLS_NCHAR_CHARACTERSET
AL16UTF16


SQL> conn / as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount 
ORACLE instance started.

Total System Global Area 4999610368 bytes
Fixed Size    5293944 bytes
Variable Size 1258293384 bytes
Database Buffers 3724541952 bytes
Redo Buffers   11481088 bytes

Database mounted.

SQL> ALTER SESSION SET SQL_TRACE=TRUE;
Session altered.

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 

System altered.

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; 

System altered.

SQL> alter database open; 

Database altered.

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set


SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; 

Database altered.

SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;

Database altered.

SQL> ALTER SESSION SET SQL_TRACE=FALSE;

Session altered.

SQL> SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET';

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
ZHS16GBK


NLS_NCHAR_CHARACTERSET
UTF8


SQL> shutdown immediate; 
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 4999610368 bytes
Fixed Size    5293944 bytes
Variable Size 1258293384 bytes
Database Buffers 3724541952 bytes
Redo Buffers   11481088 bytes
Database mounted.
Database opened.

Oracle 字符集的查看和修改

介绍Oracle字符集相关内容、主要是编码问题。
  • chenghuaying
  • chenghuaying
  • 2015年10月22日 10:23
  • 2051

Oracle字符集及其查看和修改

本文转载自: Oracle字符集的查看和修改 Oracle字符集基础知识 彻底搞懂Oracle字符集 本文转载自:Oracle字符集的查看和修改 一、什么是Oracle字符集     ...
  • gongxifacai_believe
  • gongxifacai_believe
  • 2016年06月07日 17:53
  • 1948

Oracle字符集的查看查询和Oracle字符集的设置修改

 Oracle字符集的查看查询和Oracle字符集的设置修改 本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和or...
  • kevin_LCC
  • kevin_LCC
  • 2015年04月07日 02:16
  • 1880

Oracle数据库的连接配置和字符集配置

解决方案: 1.安装后oracle后,首先要修改字符集。 想要修改字符集,就要使用命令行行登录oracle,以及其后使用sqlplus连接oracle,此时配置oracle的配置文件是第一步,本人正确...
  • u012605477
  • u012605477
  • 2017年03月13日 15:05
  • 1120

ORACLE11g数据库字符集从ZHS16GBK转为UTF8

如果想要搞清楚Oracle的字符系统,需要紧紧地抓住三个因素: 一.“客户终端字符集” 二.“NLS_LANG”环境变量 三.“数据库字符集” 数据库字符集查看方法:select * from nl...
  • gtt875
  • gtt875
  • 2017年04月26日 12:53
  • 4419

oracle 修改字符集 为ZHS16GBK

相信很多人都会遇到安装oracle后字符集编码不一致而导致的各种问题,现在讲下如何修改字符集格式。 一、oracle server 端 字符集查询 select userenv('lang...
  • dante_feng
  • dante_feng
  • 2017年04月26日 10:55
  • 1295

Oracle数据库字符集和客户端字符集不同,强制转化可能会造成不可预期的后果

Oracle数据库字符集和客户端字符集不同,强制转化可能会造成不可预期的后果 用PL/SQL Developer登陆Oracle数据库,输入用户名和密码后报:数据库字符集(AL32UTF8)...
  • u010098331
  • u010098331
  • 2016年03月11日 12:59
  • 1107

设置ORACLE客户端字符集

zhuan zi 1、字符集的一些基本知识     字符集有很多种,最初的字符集是ASCII,由于ASCII支持的字符很有限,因此随后又出现了很多的编码方案,这些编码方案大部分都是包括了ASCII...
  • a3029537
  • a3029537
  • 2014年10月27日 23:51
  • 2375

oracle服务器和客户端字符集的查看和修改

[Q]怎么样查看数据库字符集    [A]数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。   客...
  • yuhualee
  • yuhualee
  • 2014年05月07日 15:05
  • 927

Oracle中的语言、地区与字符集

Oracle中的语言地区与字符集 1、语言、地区和字符集 使用下面的语句查询语言、地区和字符集: SQL> select userenv('language') from dual; USER...
  • wang_san_shi
  • wang_san_shi
  • 2014年12月29日 08:59
  • 1292
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle 数据库 字符集修改
举报原因:
原因补充:

(最多只允许输入30个字)