Oracle里面如何识别存储字段里面是否存在中文,方法有二:
1、使用length和lengthb,如果中文的话length是一个字符,但是lengthb是两个字节。但是这个方法不适合数据库字符集非gbk的情况。
select * from t where length(c1) != lengthb(c1);
2、使用asciistr函数得出是否字段里面包含“/”,因为当中文字符转换为ascii后,变成“/FFFD/FFFD”,但是需要注意一个特殊字符“/”,当它出现的时候转换后的码为“/005C”
SQL> select asciistr('//)(-=!@#$%^&*~中文字符') from dual;
ASCIISTR('//)(-=!@#$%^&*~中文字符')
-----------------------------------------------------------
//005C)(-=!@#$%^&*~/FFFD/FFFD/FFFD/FFFD/FFFD/FFFD/FFFD/FFFD