2.4.2 国家字符集:
(1)用以存储 NCHAR, NVARCHAR2, NCLOB 等类型数据
(2)国家字符集实质上是为 oracle 选择的附加字符集,主要作用是为了增强
oracle 的字符处理能力,因为 NCHAR 数据类型可以提供对亚洲使用定长多字节
编码的支持,而数据库字符集则不能。国家字符集在 oracle9i 中进行了重新定
义,只能在 unicode 编码中的 AF16UTF16 和 UTF8 中选择,默认值是
AF16UTF16
2.4.3 查询字符集参数
可以查询以下数据字典或视图查看字符集设置情况
nls_database_parameters、props$、v$nls_parameters
查询结果中 NLS_CHARACTERSET 表示字符集,
NLS_NCHAR_CHARACTERSET 表示国家字符集
2.4.4 修改数据库字符集
按照上文所说,数据库字符集在创建后原则上不能更改。不过有 2 种方法可
行。
1.如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据
库数据的方式来转换。
2.通过 ALTER DATABASE CHARACTER SET 语句修改字符集,但创建数据库
后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数
据库字符集,例如 UTF8 是 US7ASCII 的超集,修改数据库字符集可使用
ALTER DATABASE CHARACTER SET UTF8。i
2.5客户端字符集(NLS_LANG 参数)
2.5.1 客户端字符集含义
客户端字符集定义了客户端字符数据的编码方式,任何发自或发往客户端的
字符数据均使用客户端定义的字符集编码,客户端可以看作是能与数据库直接连
接的各种应用,例如 sqlplus,exp/imp 等。客户端字符集是通过设置 NLS_LANG
参数来设定的。
2.5.2NLS_LANG 参数格式
NLS_LANG=<language>_<territory>.<client character set>
Language:显示 oracle 消息,校验,日期命名
Territory:指定默认日期、数字、货币等格式
Client character set:指定客户端将使用的字符集