ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 判断字段中是否含有中文字符

判断字段中是否含有中文字符

原创 Linux操作系统 作者:hyg03 时间:2009-01-15 22:44:31 0 删除 编辑

本文中length代表的是字的长度,lengthb是字节的长度,字符集为ZHS16GBK。

第一种方法:不太准确,只能判断含有双字节字符

 SQL> create table test (name varchar2(100));

表已创建。

SQL> insert into test values ('ABC已连接');

已创建 1 行。

SQL> insert into test values ('ABC');

已创建 1 行。

SQL> select name from test where length(name)!=lengthb(name);

NAME
--------------------------------------------------------------

ABC已连接

SQL> select name from test where length(name)=lengthb(name);

NAME
--------------------------------------------------------------

ABC

 

第二种方法:

gbk编码范围是4e00-9fa5

生成编码范围内的所有汉字(见附件),将每一个汉字作为一行存入表test。

SQL> select count(*) from test;

  COUNT(*)
----------
     20902

SQL> select min(name) from test;

MIN(NAME)
-------------------------------------------------------------------

SQL> select max(name) from test;

MAX(NAME)
-------------------------------------------------------------------

SQL> select count(*) from test where regexp_like(name, '[丂-龥]');

  COUNT(*)
----------
     20902

SQL> delete from test;

已删除20902行。

SQL> commit;

提交完成。

SQL> insert into test values ('abc');

已创建 1 行。

SQL> insert into test values ('a测试bc');

已创建 1 行。

SQL> insert into test values ('a测试');

已创建 1 行。

SQL> insert into test values ('测试bc');

已创建 1 行。

SQL> insert into test values ('测ab试');

已创建 1 行。

SQL> insert into test values ('测a试b');

已创建 1 行。

SQL> insert into test values ('def');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select name from test where regexp_like(name, '[丂-龥]');

NAME
----------------------------------------------------------------

a测试bc
a测试
测试bc
测ab试
测a试b

SQL> select name, regexp_instr(name, '[丂-龥]') as position from test;

NAME                       POSITION
---------------------------------------------------------------------------
abc                              0
a测试bc                      2
a测试                          2
测试bc                        1
测ab试                        1
测a试b                        1
def                               0

已选择7行。

test.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/351895/viewspace-539767/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-01-14

  • 博文量
    3
  • 访问量
    6132