大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用regexp_like这个函数来解决,正则表达式为:[[:punct:]]+这个正则可以找出任何标点符号。查询value中包含任何标点符号的记录如下:select*fromxxxwhereregexp_like(value,'[[:punct:]]+');POSIX正则表达式由标准的元字符(metacharacters)所构成:'$'匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则$也匹配'\n'或'\r'。'?'匹配前面的子表达式零次或一次。'*'匹配前面的子表达式零次或多次。'|'指明两项之间的一个选择。例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的'()'标记一个子表达式的开始和结束位置。'{m,n}'一个精确地出现次数范围,m=出现次数=n,'{m}'表示出现m次,'{m,}'表示至少出现m次。\num匹配num,其中num是一个正整数。对所获取的匹配的引用。[[:alpha:]]任何字母。[[:digit:]]任何数字。[[:alnum:]]任何字母和数字。[[:space:]]任何白字符。[[:upper:]]任何大写字母。[[:lower:]]任何小写字母。[[:punct:]]任何标点符号。[[:xdigit:]]任何16进制的数字,相当于[0-9a-fA-F]。\转义符*,+,?,{n},{n,},{n,m}限定符^,$,anymetacharacter位置和顺序。
创新互联-专业网站定制、快速模板网站建设、高性价比清远网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式清远网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖清远地区。费用合理售后完善,十多年实体公司更值得信赖。
利用以下sql:
select col from t where length(col)*2=lengthb(col)
and regexp_like(col,'^[^[:punct:]]*$');
select t.* from t1 t where regexp_like(t.str,'[ac]');
oracle中的函数regexp_like,很好用的哦,其中[ac]为正则表达式,意思是,在str字段的数据里,匹配有包含a或者c的数据。具体请在网上查询oracle数据库中regexp_like函数的应用,希望能帮助你。
数据库端只要不是用7位的字符集(如:UTF-7)就行,用UTF-8可以。关键在于客户端使用的字符集必须与数据库端使用的字符集匹配起来。否则,数据库显示正常,客户端可能会显示乱码!
两个方法:
1.用到正则中的regexp_like
个人感觉可能是regexp_like(字段,'[^[:alphanum:]]')
意思是在字段中匹配非0-9,a-z,A-Z的字段,如果能匹配到,那么可以认为是汉字,否则就不是汉字,当然如果字段中还包含符号,比如加减号什么的,那么那么可能更麻烦一些。
2.用lengthb,与length比长度。如果二者长度相等,那么就没有中文字符(因为中文字符一个占用两个字节)。如果lengthb长度大于length长度,那么一般就说明里面存在中文字符。