首页 > Linux操作系统 > Linux操作系统 > 关于oracle的字符集:
一.oracle的字符集是在oracle数据库创建的时候指定的,一般情况下不能更改,所以在数据库创建的时候应该选择好字符集;
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
其中
Characterset:是指数据库中采用的字符集,用于存储数据库中char,varchar,long,clob等类型数据;存储sql和pl/sql代码;用来标识表明,列名;
National character set:是指国家字符集,用于存储nchar,nvarchar等类型数据;
Oracle的字符集命名规则:
二.字符集文件:字符集文件是在数据库中单独存储,这些文件由环境变量ora_nls指定:
9i:$oracle_home/ocommon/nls/admin/data
10g:$oracle_home/nls/data]
可以用locale builder 打开:
SQL*Plus: Release 9.0.1.0.1 - Production on 星期一 2月 23 18:56:09 2009
(c) Copyright 2001 Oracle Corporation. All rights reserved.
SQL> conn sys/laojiu as sysdba;
已连接。
SQL> select dump('罗') from dual;
DUMP('罗')
---------------------
Typ=96 Len=2: 194,222
SQL> select concat(to_char(194,'xx'),to_char(222,'xx')) from dual;
CONCAT
------
c2 de
SQL> select to_number('c2de','xxxxx') from dual;
TO_NUMBER('C2DE','XXXXX')
-------------------------
49886
SQL> select chr(49886) from dual;
CH
--
罗
三.源数据库字符集(A),导出客户端字符集(B),目标数据库字符集(C),导入客户端字符集(D):(期中客户端的字符集用nls_lang设置)
以上三者字符集在进行数据迁移时候很有用,出现的情况有以下几种;
1. A与C相同:在进行数据库数据的导出导入的时候,将设置成:A=B=C=D;
2. A与C不相同:在进行数据库数据的导出导入的时候,若A=B,则D=B,这样转换只在数据端;
3. D的nls_lang的设置和数据库C相同,那么数据库不经过转换就直接插入数据库中;
4. D的nls_lang的设置和数据库C不相同,数据要转换后才能插入数据库中。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11782778/viewspace-557496/ ,如需转载,请注明出处,否则将追究法律责任。