如何修改数据库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/rootas 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