如何修改数据库oracle 的编码呢?
我使用的oracle的版本是:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
我原来的编码是:ZHS16GBK
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
SQL> select * from nls_database_parameters where PARAMETER='NLS_CHARACTERSET';
PARAMETER
------------------------------
VALUE
-------------------------------------------------------------------------------
NLS_CHARACTERSET
ZHS16GBK
使用oracle 客户端Navicat 时报错,因为数据库的编码.
我想把数据库的编码改为UTF-8
步骤如下:
C:\Users\huangwei>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期六 5月 3 19:49:06 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn sys/root as sysdba 已连接。 SQL> SHUTDOWN IMMEDIATE 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> STARTUP MOUNT; ORACLE 例程已经启动。
Total System Global Area 2438529024 bytes Fixed Size 2178176 bytes Variable Size 1375732608 bytes Database Buffers 1040187392 bytes Redo Buffers 20430848 bytes 数据库装载完毕。 SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
系统已更改。
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
系统已更改。
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
系统已更改。
SQL> ALTER DATABASE OPEN;
数据库已更改。
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
数据库已更改。
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
数据库已更改。
SQL> SHUTDOWN IMMEDIATE; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> STARTUP ORACLE 例程已经启动。
Total System Global Area 2438529024 bytes Fixed Size 2178176 bytes Variable Size 1375732608 bytes Database Buffers 1040187392 bytes Redo Buffers 20430848 bytes 数据库装载完毕。 数据库已经打开。 |
再次查看数据库的编码:
SQL> conn sys/root as sysdba
已连接。
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
SQL> select * from nls_database_parameters where PARAMETER='NLS_CHARACTERSET';
PARAMETER
------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_CHARACTERSET
AL32UTF8