您的位置:首页 > 数据库 > Oracle

Oracle 11g修改数据库字符集

2016-07-06 16:04 423 查看
一、什么是oracle的字符集

   Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台,有时候需要修改字符集的操作,这里稍微记录一下。
二、查看数据库的字符集
SQL> select * from nls_database_parameters;

PARAMETER                      VALUE
------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               AL32UTF8
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         UTF8
NLS_RDBMS_VERSION              11.2.0.4.0

20 rows selected.

这里NLS_CHARACTERSET就是当前数据库的字符集,也可以使用以下命令查看
SQL> select userenv('language') from dual;

USERENV('LANGUAGE')

----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

SQL> 

三、修改数据库的字符集

1.       关闭数据库

SQL>SHUTDOWN IMMEDIATE;
2. 启动到Mount

SQL>STARTUP MOUNT;

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;  --这里只让数据库处于只有管理员才能登陆状态

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;  --这里将允许的job进程调至为0,防止后台有job在运行

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;   --将启动的AQ时间管理器的数量设置为0

SQL>ALTER DATABASE OPEN;

--这里可以从父集到子集

SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;

SQL>ALTER DATABASE NATIONAL CHARACTER SET ZHS16GBK;

--如果是从子集到父集,需要使用INTERNAL_USE 参数,跳过超子集检测

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;

SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL32UTF8;

3、配置完后将原来的设置都还原回去,将数据库启动到mount状态,如下:

SQL>ALTER SYSTEM DISABLE RESTRICTED SESSION;

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=1000;

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=35; 

SQL>ALTER DATABASE OPEN;

4--查看数据库的字符集
SQL>select * from nls_database_parameters;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: