我有一张user表,表里有个字段username
当存入一个带空格的西班牙语字符串时,查询就会有问题
比如AdgTécnico (最后有一个空格)
这时用select * from user where username = 'AdgTécnico'查不到记录
必须用select * from user where username = 'AdgTécnico '(加上空格)
但是如果不带西班牙语的字符,后面有没有空格都能查上来
请问各位  这是因为什么啊?
哦  版本是oracle11g

解决方案 »

  1.   

    ---这样行不??  select * from user where regexp_like(username,'AdgTécnico')
      

  2.   

    你的这个字段是char型的吧Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 
    Connected as abc
     
    SQL> create table abc (id1 varchar2(100),id2 char(100));
     
    Table created
     
    SQL>  insert into abc values('abcdef ','abcdef ');
     
    1 row inserted
     
    SQL> commit;
     
    Commit complete
     
    SQL> select * from abc;
     
    ID1                                                                              ID2
    -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
    abcdef                                                                           abcdef
     
    SQL> select * from abc where id1='abcdef';
     
    ID1                                                                              ID2
    -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
     
    SQL> select * from abc where id1='abcdef ';
     
    ID1                                                                              ID2
    -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
    abcdef                                                                           abcdef
     
    SQL> select * from abc where id2='abcdef';
     
    ID1                                                                              ID2
    -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
    abcdef                                                                           abcdef
     
    SQL> select * from abc where id2='abcdef ';
     
    ID1                                                                              ID2
    -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
    abcdef                                                                           abcdef
     
    SQL> 
      

  3.   

    回一楼
    你那条语句可以查出来结果回二楼
    这个字段是VARCHAR2(64)类型我想知道的是为什么回出现这种情况呢?
    不带西班牙语字符怎么就没问题呢?
      

  4.   

    'AdgTécnico'会等于'AdgTécnico '????
      

  5.   

    空格也是个字符啊
    不可能的吧 ,但是如果不带西班牙语的字符,后面有没有空格都能查上来 ,你说的
    'ABC'和'ABC '肯定不一样