数据肯定是大小写敏感的阿,要想查出来就改查询语句用lower(),和upper()就行

解决方案 »

  1.   

    sql server都是不敏感的阿,就oracle那么奇怪啊?没得改设置的吗?那不是写oracle的程序都很麻烦?全部都要考虑这个问题?
      

  2.   

    这不是oracle的问题,就你的例子来说,如果过两天有人想查Produce(精确匹配),你不是要改过来?想用oracle做后台,你就必须熟悉他,他这样实现有理由的
      

  3.   

    hammer_shi:不是很明白你的意思,能不能详细点?thx!
      

  4.   

    好像只能用 lower 和 upper 了
      

  5.   

    自己编一个函数建立起大小写的对应转换(用ascii)
    在需要时调用
      

  6.   

    hammer_shi:不是很明白你的意思,能不能详细点?thx!
    ---------------------------
    我暂时看的有关资料介绍这方面的解决办法是:
    1。表种增加一个列,这个列不作客户显示,只为了转换大小写而用,所以称为影子列。
    2.建立触发器,在插入修改你要转换的那列数值时相应upper(那列的值)放入影子列。
    3。查询时查询影子列,那里面都是大写的。
      

  7.   

    如果只为查询用,写个视图
    create or replace view
    vu_table as
    select id, upper(name) name from table_name;后面你在程序里就用这个视图去代替那个表吧
      

  8.   

    赞同yuaiwu(我不是版主) 、tjan(安安) 、more_zou(小人物)观点,就这样简单解决吧,做了三年Oracle上的开发还不知有什么更好的办法
      

  9.   

    好像每个办法都要涉及到所有需要查询的地方:加函数的话每个sql语句前都要调用该函数;表很多的话每个表都建一个视图也是很大工程;查询影子列好像更大工程,既要改程序又要改数据库……看来真是没什么好办法了……