IF vOpType = 0 THEN
     vDescription := vDescription || :NEW.NAME;
  ELSE
     vDescription := vDescription || :OLD.NAME;
  END IF;在PL/SQL中,有没有类似VB中的IIF或C++中的条件语句?
比如说 vDescription := vDescription || xxx(vOpType = 1, :New.name, :Old.name);
在pl/sql中不能使用decode,要是能够使用decode就可以解决我的问题了。

解决方案 »

  1.   

    update table1
    set vDescription =decode(vOpType,0,vDescription || :NEW.NAME,vDescription || :OLD.NAME)
      

  2.   

    select vDescription || decode(vOpType,0,:New.name,:Old.name) into vDescription from dual;
      

  3.   

    DECODE只能使用在SQL语句中,而不能使用在PL/SQL中!大家没有仔细看我的帖子吧!:(
      

  4.   

    decode显然是可以用在plsql中的,试一下就知道了!!
      

  5.   

    select vDescription || decode(vOpType,0,:New.name,:Old.name) into vDescription from dual;
    同意BOBFANG
      

  6.   

    我早试过了,不然也不会在这里提这个问题了!decode不能使用在PLSQL中。
      

  7.   


      select ...,  
           (case  
         when t.vOpType= 0 then
            vDescription ||:New.name
         else
              vDescription ||:Old.name
       end ) AS ....
      from ....  t
      

  8.   

    case when 也是Oracle 9i才有的语句,如果你不是9i,楼上的大哥也帮不了你!
      

  9.   

    decode 就是plsql的啊 !! case when 好像oracle 806就有了啊
      

  10.   

    不会吧在我这里用plsql6都执行的满好