oracle是区分大小写的,改成这样试试:
upper(trim(a.TR_TYPE)) = 'I'

解决方案 »

  1.   

    按第一种写,可以执行,显示出结果。
    但按第二种写,在PL*SQL中按回车后不执行,反倒多出一空行,再按回车就退出了。如下:SQL> select a.TR_NBR,a.TR_TYPE,a.TR_DELIVERY_NBR, a.TR_PART_NBR,a.TR_QUANTITY, a.TR_UNIT_COST,a.TR_V
    END,a.TR_DEPT,a.TR_DATE,a.TR_OPERATOR,a.TR_UNIT,a.TR_PO_NBR,b.pt_avg_cost from transaction_detail a,
    part_no_master b where a.tr_part_nbr = b.pt_part and a.TR_TYPE = 'I';
      2  
    SQL>
      

  2.   

    是不是你的标点符号有问题,换成英文输入法,重新书写
    select a.TR_NBR,a.TR_TYPE,a.TR_DELIVERY_NBR, a.TR_PART_NBR,a.TR_QUANTITY, a.TR_UNIT_COST,a.TR_V
    END,a.TR_DEPT,a.TR_DATE,a.TR_OPERATOR,a.TR_UNIT,a.TR_PO_NBR,b.pt_avg_cost from transaction_detail a,
    part_no_master b where a.tr_part_nbr = b.pt_part and a.TR_TYPE = 'I';//特别是此处的分号,你可能是中文输入法输入的,导致无效
      

  3.   

    bzszp(SongZip):
    我重试了一次,确认是在英文状态下输入的。
    但仍然是同样的问题!
    HELP!
      

  4.   

    同意上面。
    sql 语句的标点符号都必须是英文符号。
      

  5.   

    我重试了一次,确认是在英文状态下输入的。但仍然是同样的问题!HELP!各位自已做个实验呢?
      

  6.   

    出现这种情况应该是sql命令还没有结束的情况。
      

  7.   

    SQL> SELECT BBB, CCC FROM A2;//英文分号BBB        CCC
    ---------- --------------------
    103        103
    105        105
    107
    101        101SQL> SELECT BBB, CCC FROM A2;//中文分号
      2  
    SQL> 
    不要在“微软拼音输入法”下面,用“英语”输入法
      

  8.   

    用select length() from dual;查一下该语句的长度,是232就对了,是233就是中文的分号。
      

  9.   

    真奇怪!
    我这样做不行:
    SQL> select a.TR_NBR,a.TR_TYPE,a.TR_DELIVERY_NBR,a.TR_PART_NBR,a.TR_QUANTITY,a.TR_UNIT_COST,a.TR_VEN
    D,a.TR_DEPT,a.TR_DATE,a.TR_OPERATOR,a.TR_UNIT,a.TR_PO_NBR,b.pt_avg_cost from transaction_detail a,pa
    rt_no_master b where a.tr_part_nbr = b.pt_part and a.TR_TYPE = 'I';
      2  
    SQL>但这样做却可以:
    SQL> select a.TR_NBR,a.TR_TYPE,a.TR_DELIVERY_NBR,a.TR_PART_NBR,a.TR_QUANTITY,a.TR_UNIT_COST,a.TR_VEN
    D,a.TR_DEPT,a.TR_DATE,a.TR_OPERATOR,a.TR_UNIT,a.TR_PO_NBR,b.pt_avg_cost from transaction_detail 
      2  a,part_no_master b where a.tr_part_nbr = b.pt_part and a.TR_TYPE = 'I';
       TR_NBR TR TR_DELIVERY_NBR      TR_PART_NBR                                        TR_QUANTITY
    --------- -- -------------------- -------------------------------------------------- -----------
    TR_UNIT_COST TR_VEND              TR_DEPT              TR_DATE
    ------------ -------------------- -------------------- ----------
    TR_OPERATOR                                        TR_UNIT
    -------------------------------------------------- --------------------
    TR_PO_NBR                                          PT_AVG_COST
    -------------------------------------------------- -----------
            3 I  issue01              1                                                            1
                                      null                 2002/08/28
    albert                                             ¸ö
                                                            19.091两者的区别是用硬回车在transaction_detail后把这句话分成了两行而已。
    真要命啊!
    在PL*SQL可以这样处理。但在程序里该怎么办呢?
    HELP!
      

  10.   

    真奇怪啊!
    语句一样,只是加个回车却得到不同结果!怎么回事呢?
    地程序里该怎么写呢?
    HELP!!!!
      

  11.   

    这样试试看
    select a.TR_NBR,a.TR_TYPE,a.TR_DELIVERY_NBR, a.TR_PART_NBR,a.TR_QUANTITY, a.TR_UNIT_COST,a.TR_VEND,a.TR_DEPT,a.TR_DATE,a.TR_OPERATOR,a.TR_UNIT,a.TR_PO_NBR,b.pt_avg_cost from transaction_detail a,part_no_master b where a.tr_part_nbr = b.pt_part 
    and a.TR_TYPE = '%I%'
      

  12.   

    a.TR_NBR,a.TR_TYPE,a.TR_DELIVERY_NBR,a.TR_PART_NBR,a.TR_QUANTITY,a.TR_UNIT_COST,a.TR_VEND,a.TR_DEPT,a.TR_DATE,a.TR_OPERATOR,a.TR_UNIT,a.TR_PO_NBR,b.pt_avg_cost from transaction_detail a,part_no_master b where a.tr_part_nbr = b.pt_part and a.TR_TYPE = 'I';
      

  13.   

    在程序中时没必要的地方不要加空格就行a.TR_NBR,a.TR_TYPE,a.TR_DELIVERY_NBR,a.TR_PART_NBR,a.TR_QUANTITY,a.TR_UNIT_COST,a.TR_VEND,a.TR_DEPT,a.TR_DATE,a.TR_OPERATOR,a.TR_UNIT,a.TR_PO_NBR,b.pt_avg_cost from transaction_detail a,part_no_master b where a.tr_part_nbr(+) = b.pt_part and a.TR_TYPE = 'I';
      

  14.   

    我试了一下,程序里的SQL语句就没有这个问题,只在PL*SQL中有这个问题。
    是PL*SQL的BUG?
      

  15.   

    设置缓冲区最大吧,好像时2000,在sqlplus的菜单上可以修改。
      

  16.   

    是,我设了呢。
    linesize=1000
    buffer width=1000
    buffer length=2000
      

  17.   

    where a.tr_part_nbr(+) = b.pt_part and a.TR_TYPE = 'I';
     
    没看到???(+)