oracle 的字符集回顾

一 进入$ORACLE_HOME/nls/可以看到有如下四个目录
csscan  data  lbuilder  mesg
进入lbuilder目录,启动lbuilder,打开字符集文件(按对象名打开)。这里以AL32 utf-8为例说明。打开 lx20369.nlb文件。查找“成”字,oxe68890
SQL> select dump('成') from dual;
 
DUMP('成')
-------------------------
Typ=96 Len=3: 230,136,144
查找这个字的16进程编码
SQL> select to_char(230,'xx')||to_char(136,'xx')||to_char(144,'xx') from dual;
 
TO_CHAR(230,'XX')||TO_CHAR(136
------------------------------
 e6 88 90
和lbuilder打开的是一样的。
SQL> select to_number('e68890','xxxxxxxx') from dual;
 
TO_NUMBER('E68890','XXXXXXXX')
------------------------------
                      15108240
 
SQL> select chr(15108240) from dual;
 
CHR(15108240)
-------------

二 oracle 的字符编码命名
<language>.<bit size>.<encoding>
eg:zhs 16 gbk
    AL    32 utf8 --al 代表all ,32代表32位
说明一下utf8应当为al24utf8,但习惯命名为utf8,所以,al32utf8是utf8的超级。
这里面用lbuilder打开是一样的:
SQL> select nls_charset_id('UTF8') from dual;
 
NLS_CHARSET_ID('UTF8')
----------------------
                   871
 
SQL> select nls_charset_id('AL32UTF8') from dual;
 
NLS_CHARSET_ID('AL32UTF8')
--------------------------
                       873
SQL> select nls_charset_name(873) from dual;
 
NLS_CHARSET_NAME(873)
---------------------
AL32UTF8
 
三 修改字符集,不怕死的改props$
四 查看dmp文件格式
linux 下:cat 2011.dmp|od -x|head
配合:
select nls_charset_id(value) nls_charset_id,value nls_charset_name,to_char(nls_charset_id(value),'xxxx') hexid
 from v$nls_valid_values where parameter='CHARACTERSET';
得出:
871 UTF8 367
可以判断dmp文件是从什么环境导出来的


posted on 2012-01-11 22:44 snowhill 阅读(276) 评论(0)  编辑 收藏 引用 所属分类: 数据库-oracle


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

公告

又一年...........

留言簿(3)

随笔分类(13)

文章分类(131)

文章档案(124)

c++

java

linux

oracle

常用软件

其他

网络配置

系统安全

音乐

搜索

最新评论

阅读排行榜