Linux下更改oracle客户端字符集和服务端字符集
2011-01-27 14:16
381 查看
Linux
下更改
oracle
客户端字符集和服务端字符集
1.Linux
下更改
oracle
客户端字符集,即设置环境变量“
NLS_LANG“
的值
查看客户端字符集,在终端下执行:
echo
$NLS_LANG
修改客户端字符集:
sudo
gedit /etc/environment
在environment
文件中增加以下内容:
NLS_LANG="SIMPLIFIED
CHINESE_CHINA.ZHS16GBK"
export
NLS_LANG
重新启动操作系统即可。
2.
修改
oracle
服务端的字符集。
查看服务端字符集:
select
userenv('language') from dual;
修改服务端字符集,终端下执行:
$ORACLE_HOME/bin/sqlplus
/nolog
进入sqlplus
命令行
SQL>conn
/ as sysdba;
1
)
.
关闭数据库
SQL>SHUTDOWN
IMMEDIATE;
2
)
.
启动到
Mount
STARTUP
MOUNT;
ALTER
SYSTEM ENABLE RESTRICTED SESSION;
ALTER
SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER
SYSTEM SET AQ_TM_PROCESSES=0;
ALTER
DATABASE OPEN;
ALTER
DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
--
下面一行语句可能会出现错误提示,可以不理会
ALTER
DATABASE national CHARACTER SET INTERNAL ZHS16GBK;
SHUTDOWN
IMMEDIATE;
STARTUP;
3.
修改
dmp
文件字符集
dmp
文件的第2
第3
字节记录了字符集信息,因此直接修改dmp
文件的第2
第3
字节的内容就可以‘骗’过oracle
的检查。这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,如
US7ASCII
,WE8ISO8859P1
,ZHS16CGB231280
,ZHS16GBK
基本都可以改。因为改的只是dmp
文件,所以影响不大。
具体的修改方法比较多,最简单的就是直接用UltraEdit
修改dmp
文件的第2
和第3
个字节。比如想将dmp
文件的字符集改为ZHS16GBK
,可以用以下SQL
查出该种字符集对应的16
进制代码:
SQL>
select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;
0354
然后将dmp
文件的2
、3
字节修改为0354
即可。
Oracle
提供标准函数,对字符集名称及
ID
进行转换
:
SQL>
select nls_charset_id('ZHS16GBK') from dual;
NLS_CHARSET_ID('ZHS16GBK')
--------------------------
852
1
row selected.
SQL>
select nls_charset_name(852) from dual;
NLS_CHAR
--------
ZHS16GBK
1
row selected.
十进制转换十六进制
:
SQL>
select to_char('852','xxxx') from dual;
TO_CH
-----
354
参考文章:
《Oracle
字符集的查看和修改》:
http://blog.csdn.net/tianlesoftware/archive/2009/12/02/4915223.aspx
《字符集问题的初步探讨(
五)-
导出文件字符集》: http://www.eygle.com/special/NLS_CHARACTER_SET_05.htm
下更改
oracle
客户端字符集和服务端字符集
1.Linux
下更改
oracle
客户端字符集,即设置环境变量“
NLS_LANG“
的值
查看客户端字符集,在终端下执行:
echo
$NLS_LANG
修改客户端字符集:
sudo
gedit /etc/environment
在environment
文件中增加以下内容:
NLS_LANG="SIMPLIFIED
CHINESE_CHINA.ZHS16GBK"
export
NLS_LANG
重新启动操作系统即可。
2.
修改
oracle
服务端的字符集。
查看服务端字符集:
select
userenv('language') from dual;
修改服务端字符集,终端下执行:
$ORACLE_HOME/bin/sqlplus
/nolog
进入sqlplus
命令行
SQL>conn
/ as sysdba;
1
)
.
关闭数据库
SQL>SHUTDOWN
IMMEDIATE;
2
)
.
启动到
Mount
STARTUP
MOUNT;
ALTER
SYSTEM ENABLE RESTRICTED SESSION;
ALTER
SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER
SYSTEM SET AQ_TM_PROCESSES=0;
ALTER
DATABASE OPEN;
ALTER
DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
--
下面一行语句可能会出现错误提示,可以不理会
ALTER
DATABASE national CHARACTER SET INTERNAL ZHS16GBK;
SHUTDOWN
IMMEDIATE;
STARTUP;
3.
修改
dmp
文件字符集
dmp
文件的第2
第3
字节记录了字符集信息,因此直接修改dmp
文件的第2
第3
字节的内容就可以‘骗’过oracle
的检查。这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,如
US7ASCII
,WE8ISO8859P1
,ZHS16CGB231280
,ZHS16GBK
基本都可以改。因为改的只是dmp
文件,所以影响不大。
具体的修改方法比较多,最简单的就是直接用UltraEdit
修改dmp
文件的第2
和第3
个字节。比如想将dmp
文件的字符集改为ZHS16GBK
,可以用以下SQL
查出该种字符集对应的16
进制代码:
SQL>
select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;
0354
然后将dmp
文件的2
、3
字节修改为0354
即可。
Oracle
提供标准函数,对字符集名称及
ID
进行转换
:
SQL>
select nls_charset_id('ZHS16GBK') from dual;
NLS_CHARSET_ID('ZHS16GBK')
--------------------------
852
1
row selected.
SQL>
select nls_charset_name(852) from dual;
NLS_CHAR
--------
ZHS16GBK
1
row selected.
十进制转换十六进制
:
SQL>
select to_char('852','xxxx') from dual;
TO_CH
-----
354
参考文章:
《Oracle
字符集的查看和修改》:
http://blog.csdn.net/tianlesoftware/archive/2009/12/02/4915223.aspx
《字符集问题的初步探讨(
五)-
导出文件字符集》: http://www.eygle.com/special/NLS_CHARACTER_SET_05.htm
相关文章推荐
- Linux下更改oracle客户端字符集和服务端字符集
- [转]Oracle字符集(客户端+服务端)的问题
- 解决Oracle客户端和服务端字符集匹配问题
- oracle客户端服务端字符集-解决乱码
- Oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- Oracle更改客户端语言字符集设置NLS_LANG的方法
- oracle 更改服务端字符集 更改oracle字符集
- Oracle-EBS-Linux-虚拟机-服务器配置问题(解决无监听AND客户端服务器字符集不匹配问题)
- 查看oracle服务端字符集以及配置客户端字符集
- oracle客户端 与 服务端字符集大疑问??
- oracle更改服务端字符集
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- win7 oracle10g客户端 连linux oracle服务端
- navicat连接oracle的错误:ora-12737:instant client light :unsupport server charater set ZHS16GBK解决办法。(oracle服务端字符集,客户端字符集,dmp备份文件字符集,or
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- Oracle客户端的字符集与服务端字符集不同
- linux远程日志rsyslog服务端和客户端安装
- 在linux下安装oracle客户端