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 黟 黢 黩 黧 黥 黪 黯 鼢 鼬 鼯 鼹 鼷 鼽 鼾 齄