SELECT NULL - SYSDATE FROM dual;--报错:  ORA-00932: inconsistent datatypes: expected CHAR got DATE  SELECT SYSDATE - NULL FROM dual;
--正常
在处理ORA-00932: inconsistent datatypes: expected CHAR got DATE
这个错误的时候发现这个问题,开始以为是2个null相减会出错,现在看来其中还有原因。  

解决方案 »

  1.   

    估计是涉及到oracle里的隐式转换的问题,关注
      

  2.   

    SELECT NULL - SYSDATE FROM dual;
    Oracle认为NULL后面需要一个Char类型的,所以报错
      

  3.   

    select sysdate/null from dual 这样应该没得问题
      

  4.   

    学习到了
    SELECT NULL FROM dual;
    原来是char类型
      

  5.   

    实测下面2条语句没有问题:SELECT NULL - to_char(SYSDATE) FROM dual;
    SELECT SYSDATE - NULL FROM dual;
    为什么要进行这样的操作呢,没有意义啊。
      

  6.   

    oracle的默认转型,是从左到右的吧。
    也就是null 在前时,null自动专为 char型,然后它认为,运算要在同类型间进行,即需要‘-’后边为一个char型参数。
      

  7.   

    select NULL from dual; 查詢沒問題。(oracle:11.2.0.2)
    難道和DB版本有關係???