在创建oracle数据库时,需要指定数据库使用的字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。语句的格式示例如下:
CREATE DATABASE "MON"
MAXINSTANCES 8
MAXLOGHISTORY 500
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 500
DATAFILE '/oradata/MON/system01.dbf' SIZE 1024M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/oradata/MON/sysaux01.dbf' SIZE 1024M REUSE
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/oradata/MON/temp01.dbf' SIZE 3072M REUSE
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/oradata/MON/undotbs01.dbf' SIZE 3072M REUSE
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/oralog/MON/redo01.log') SIZE 512M,
GROUP 2 ('/oralog/MON/redo02.log') SIZE 512M,
GROUP 3 ('/oralog/MON/redo03.log') SIZE 512M,
GROUP 4 ('/oralog/MON/redo04.log') SIZE 512M
USER SYS IDENTIFIED BY "oracle" USER SYSTEM IDENTIFIED BY "oracle";
目前比较常用的字符集编码有以下几类:
ASCII编码:如US7ASCII
Unicode编码:如AL16UTF16
GBK编码:如ZHS16GBK
Oracle的字符集命名通常遵循以下命名规则:,例如[ZHS][16][GBK]。如果为AL,则代表ALL,表示适用于所有语言。
ZHS16GBK为国家GBK汉字内码扩展规范,[GB]代表[国标],[K]代表[扩展]的意思,英文全称Chinese Internal Code Specification。它是GB2312-80的扩展,支持简体字、繁体字、日语等字符。不过在官方文档上,对于ZHS16GBK的说明是Simplified Chinese,这个多少会给人一定的误解。
关于字符集另一个重要的参数就是环境变量NLS_LANG,该参数由以下部分组成:
NLS_LANG=_.
其中参数指定Oracle消息使用的语言,日期中月份和日的显示;
参数指定货币和数字格式,地区和计算星期及日期的习惯;
控制客户端应用程序使用的字符集。
通常在现实环境中,存在3个字符集设置:
(1) 客户端应用字符集
(2) 客户端的NLS_LANG参数设置
(3) 服务器端数据库字符集的设置
在数据传输过程中,如果客户端NLS_LANG和数据库字符集设置一致,那么传输将不进行任何字符转换。为了不产生乱码,应尽量保证上述3类字符集设置一致。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20750200/viewspace-707813/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20750200/viewspace-707813/