linux下如何修改oracle11的现有字符集
2013-03-23 10:49
405 查看
首先查看字符集。解决乱码的方法就是使两端的字符集统一。
服务端select * from nls_database_parameters
客户端select userenv('language') from dual
这里只介绍WE8ISO8859P1->ZHS16GBK的步骤方法:
检查当前的字符集为WE8ISO8859P1:
首先在linux下进入sqlplus------------sqlplus "/as sysdba"
SQL> select * from v$nls_parameters;
PARAMETER
VALUE
---------------------------------------------------------------- ---------------
NLS_LANGUAGE
AMERICAN
NLS_TERRITORY
AMERICA
NLS_CURRENCY
$
NLS_ISO_CURRENCY
AMERICA
NLS_NUMERIC_CHARACTERS
.,
NLS_CALENDAR
GREGORIAN
NLS_DATE_FORMAT
DD-MON-RR
NLS_DATE_LANGUAGE
AMERICAN
NLS_CHARACTERSET
WE8ISO8859P1
NLS_SORT
BINARY
NLS_TIME_FORMAT
HH.MI.SSXFF AM
PARAMETER
VALUE
---------------------------------------------------------------- ---------------
NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM
NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI
NLS_DUAL_CURRENCY
$
NLS_NCHAR_CHARACTERSET
UTF8
NLS_COMP
BINARY
NLS_LENGTH_SEMANTICS
BYTE
NLS_NCHAR_CONV_EXCP
FALSE
19 rows selected.
SQL>
将数据库启动:
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
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> select * from v$nls_parameters;查看一下
19 rows selected.
SQL> shutdown;
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> select * from v$nls_parameters;大功告成,查看一下吧
服务端select * from nls_database_parameters
客户端select userenv('language') from dual
这里只介绍WE8ISO8859P1->ZHS16GBK的步骤方法:
检查当前的字符集为WE8ISO8859P1:
首先在linux下进入sqlplus------------sqlplus "/as sysdba"
SQL> select * from v$nls_parameters;
PARAMETER
VALUE
---------------------------------------------------------------- ---------------
NLS_LANGUAGE
AMERICAN
NLS_TERRITORY
AMERICA
NLS_CURRENCY
$
NLS_ISO_CURRENCY
AMERICA
NLS_NUMERIC_CHARACTERS
.,
NLS_CALENDAR
GREGORIAN
NLS_DATE_FORMAT
DD-MON-RR
NLS_DATE_LANGUAGE
AMERICAN
NLS_CHARACTERSET
WE8ISO8859P1
NLS_SORT
BINARY
NLS_TIME_FORMAT
HH.MI.SSXFF AM
PARAMETER
VALUE
---------------------------------------------------------------- ---------------
NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM
NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI
NLS_DUAL_CURRENCY
$
NLS_NCHAR_CHARACTERSET
UTF8
NLS_COMP
BINARY
NLS_LENGTH_SEMANTICS
BYTE
NLS_NCHAR_CONV_EXCP
FALSE
19 rows selected.
SQL>
将数据库启动:
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
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> select * from v$nls_parameters;查看一下
19 rows selected.
SQL> shutdown;
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> select * from v$nls_parameters;大功告成,查看一下吧
相关文章推荐
- 在linux下如何修改oracle的sys和system的密码
- 在linux下如何修改oracle的sys和system的密码
- 如何修改Oracle字符集
- linux 修改oracle的字符集
- 在Linux下修改oracle的字符集(2)
- Linux 下修改oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- 如何修改Oracle字符集
- linux enterprise5 & oracle10g中如何修改oracle的字符集(测试与整理)
- linux修改oracle字符集
- 如何修改Oracle Enterprise Linux时区?
- 如何修改oracle字符集
- 如何在RAC环境下修改Oracle字符集
- linux 修改oracle字符集
- Linux修改oracle 10g的字符集
- oracle_11 linux客户端安装说明以及如何添加sqlldr命令
- 如何修改oracle 11G的字符集、用户名区分大小写、密码过期问题?
- linux下修改oracle字符集 解决中文乱码
- 【转】在Linux下修改oracle的字符集
- 在linux下修改oracle字符集
- Oracle如何修改字符集及如何查看dmp文件的字符集信息