Oracle中判断字段是否包含中文

如果要判断Oracle字段中包含中文,有个简单的方法。
 
SQL> drop table test purge;
 SQL> create table test as select * from dba_objects where rownum<10;
 SQL> update test set object_name='中国' where  rownum <3;
 SQL> commit;
 SQL> col object_name format a30
 SQL> col asciistr(object_name) format a40
 SQL> select object_name,asciistr(object_name) from test where asciistr(object_name) like '%\%';
 OBJECT_NAME                    ASCIISTR(OBJECT_NAME)
 ------------------------------ ----------------------------------------
 中国                          \4E2D\56FD
 中国                          \4E2D\56FD
 

SQL> select object_name,asciistr(object_name) from test where asciistr(object_name) like '%\%';
 OBJECT_NAME                    ASCIISTR(OBJECT_NAME)
 ------------------------------ ----------------------------------------
 CON$                          CON$
 UNDO$                          UNDO$
 C_COBJ#                        C_COBJ#
 I_OBJ#                        I_OBJ#
 PROXY_ROLE_DATA$              PROXY_ROLE_DATA$
 I_IND1                        I_IND1
 I_CDEF2                        I_CDEF2

中文的编码范围是:B0A1 -- F7FE

附录:GB2312简体中文编码表
 code  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B0A0    啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘
B0B0  鞍 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱
B0C0  袄 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋
B0D0  靶 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑
B0E0  班 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮
B0F0  梆 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥 

....................................................

code  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
F7A0    鳌 鳍 鳎 鳏 鳐 鳓 鳔 鳕 鳗 鳘 鳙 鳜 鳝 鳟 鳢
F7B0  靼 鞅 鞑 鞒 鞔 鞯 鞫 鞣 鞲 鞴 骱 骰 骷 鹘 骶 骺
F7C0  骼 髁 髀 髅 髂 髋 髌 髑 魅 魃 魇 魉 魈 魍 魑 飨
F7D0  餍 餮 饕 饔 髟 髡 髦 髯 髫 髻 髭 髹 鬈 鬏 鬓 鬟
F7E0  鬣 麽 麾 縻 麂 麇 麈 麋 麒 鏖 麝 麟 黛 黜 黝 黠
F7F0  黟 黢 黩 黧 黥 黪 黯 鼢 鼬 鼯 鼹 鼷 鼽 鼾 齄 

相关推荐