在oracle里,空字符串''(注意不是' ')等价于null
rtrim(' ')=''=null

解决方案 »

  1.   

    这样
    IF decode(v_TB0_Str,null,0,1) = decode(v_TA7_Str,null,0,1) THEN
      

  2.   


    当RTRIM(v_TB0_Str)或RTRIM(v_TA7_Str)中有一个是null时,RTRIM(v_TB0_Str) = RTRIM(v_TA7_Str) 的值为null,程序将执行else后的语句。
      

  3.   

    decode是什么函数??我把语句改成了这样
    IF (RTRIM(v_TB0_Str) || ' ') = (RTRIM(v_TA7_Str) || ' ') THEN
    虽然庞大了点
    不过可以用有其他的好的判断null值相等的方法吗
      

  4.   

    decode 相当于case语句,
    decode(v_TB0_Str,null,0,1)//v_TB0_Str=null时,返回0,其他的返回1
      

  5.   

    rcd_TB0_Sel A3BTBLB0%ROWTYPE;
    rcd_TA7_Sel A3BTBLA7%ROWTYPE;
    如果表A3BTBLB0和A3BTBLA7中都有字段 aaaaa
    在对A3BTBLB0检索,得到了一条记录,但是字段aaaa的值为null
    在对A3BTBLA7检索,没有得到记录
    所以rcd_TB0_Sel.aaaa = null
        rcd_TA7_Sel.aaaa = null
    这样成立吗如果这样的话,我如何辨别这两个null是不一样的呢
    就是说A3BTBLB0%ROWTYPE这样定义的结构,如何来看是不是为null?
      

  6.   

    try try:
    if rcd_TB0_Sel is null then
      ...
    end  if;
    or :
    if sql%NOTFOUND then
    ...
    end if;
      

  7.   

    sql%NOTFOUND能适合于许多地方,尤其在有游标的时候。
      

  8.   

    在同时有rcd_TB0_Sel A3BTBLB0%ROWTYPE,和rcd_TA7_Sel A3BTBLA7%ROWTYPE的时候,sql%NOTFOUND指的是那个?最接近的那个查询语句的?
      

  9.   

    sql%NOTFOUND针对最近的查询语句。