判断Oracle字段中是否存在中文《asciistr函数》

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

 

你可能感兴趣的:(判断Oracle字段中是否存在中文《asciistr函数》)