f BOOLEAN := FALSE;
SELECT CASE f
         WHEN  FALSE THEN 
         lineno
         ELSE
         NULL
         END 
   INTO a FROM line WHERE lineno ='X1';老是提示FALSE标识符无效,如果把false换成integer类型就可以判断,如下:  f INTEGER:= 1;
SELECT CASE f
         WHEN  1 THEN 
         lineno
         ELSE
         NULL
         END 
   INTO a FROM line WHERE lineno ='X1';这是为什么?怎么解决??因为我用到很多BOOLEAN判断。全部该变量很麻烦。谢谢

解决方案 »

  1.   

    case 的条件是不能用Bool的。如果可能你可以这样写,case 1=1or case 1<> 1你试试吧。
      

  2.   

    不能直接判断bool类型??那岂不是很麻烦,oracle怎么连这个功能都没有??也没有continue,郁闷!!!
      

  3.   

    我试过了,用了decode还是那个错误,标识符无效!!!
      

  4.   

    case 的条件是不能用Bool的,用0或1替代一下