我的products表是有空值的但是在使用NVL是就报错,请问是怎么回事?

解决方案 »

  1.   

    你的product_type_id是number类型,不是字符串
      

  2.   

    同上
    product_type_id是number类型,NVL(product_type_id,数值)就可以了啊
      

  3.   

    NVL(product_type_id,-999)
    我们在开发中,如果遇到数值类型为null,一般都给-999
    当然首先考虑当前需求
      

  4.   

    select nvl(null ,'ccc') from  dual;
    select nvl('1' ,'c cc') from  dual;红字处为字符串。
      

  5.   

    改成nvl(product_type_id||'' ,'No id')
      

  6.   

    CMD面板下面有错误提示的invalid number,无效的数字。
    说明你使用NVL函数的时候给定的默认值类型,与product_type_id不匹配了。
    而你给出的恰恰是不匹配的值'no id'字符类型。所以才出错!
    看你写的查询语句应该也是无实际意义的,你可以修改当product_type_id为null时,让默认值为一个任意NUMBER类型的数值。
    如:
    SELECT NVL(product_type_id, 0), name FROM products;