ZKX's LAB

oracle 默认汉字编码 oracle ZHS16GBK 一个汉字 几字节?是三个字节吗?哪种编码是2个字节地?

2021-04-07知识8

oracle 11g客户端,用pl/sql打开时,数据表中的字段凡是有汉字的位置都被编码为?了 本地语言支持nls_lang客户端要和服务端一致nls_lang设置如下查询结果SELECT t1.VALUE|'_'|t2.VALUE|'.'|t3.VALUEFROM nls_database_parameters t1,nls_database_parameters t2,nls_database_parameters t3where t1.PARAMETER='NLS_LANGUAGE'and t2.PARAMETER='NLS_TERRITORY'and t3.PARAMETER='NLS_CHARACTERSET';

oracle里的汉字排序问题 用汉字字母排序 oracle汉字排序 oracle在9i之前是对汉字的排序是按照二进制编码进行排序的,很不适合我们的国情,在oracle9i之后,汉字的排序方式。

怎样更改oracle的编码方式 如何更改Oracle字符集国内最常用的Oracle字符集ZHS16GBK(GBK 16-bit Simplified Chinese)能够支持繁体中文,并且按照2个字符长度存储一个汉字。UTF8字符集是多字节存储,1个汉字(简体、繁体)有时采用3个字符长度存储。Oracle支持字符集的更改,但是UTF8是Oracle中最大的字符集,也就是说UTF8是ZHS16GBK的严格超集。对于子集到超集的转换,Oracle是允许的,但是对于超集到子集的转换是不允许的。一般对于超集到子集的转换,建议是通过dbca删除原来的数据库,重新再建库,选择正确的字符集,然后导入备份。我的方案是:先备份数据,然后强制转换字符集从UTF8到ZHS16GBK,然后导入备份数据。如果不行,才来重新建库,设置字符集ZHS16GBK,导入备份数据。如果这还不行,就把更改字符集从ZHS16GBK到UTF8(这是安全的),再导入备份数据,恢复到原始状况。这样就有可能避开重新建库的麻烦。1.备份数据库中所有用户的数据以oracle用户登陆,执行以下命令export NLS_LANG=“SIMPLIFIED CHINESE_CHINA.UTF8”保持与数据库服务器端一致,这样在exp导出时,就不会存在字符的转换了,备份最原始的数据。2.评估UTF8转换成ZHS16GBK的风险转换之前,要使用Oracle的csscan。

随机阅读

qrcode
访问手机版