这个错应该就是build_id列有数据错误,可能是全角数字什么的,
这个SELECT  NVL(build_id, 0)  FROM bb_service_relation_t 会不会报错呢

解决方案 »

  1.   

    我估计1不是能执行,而是还没执行到那个报错的无效数字,你应该是没完全展示所有数据。
    整一个判断数字的函数,判断一下a.build_id是不是存在空格或者非数字CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2)
         RETURN NUMBER
     IS
         v_str FLOAT;
     BEGIN
         IF str IS NULL
         THEN
            RETURN 0;
         ELSE
            BEGIN
               SELECT TO_NUMBER (str)
                 INTO v_str
                 FROM DUAL;
            EXCEPTION
               WHEN INVALID_NUMBER
               THEN
                  RETURN 0;
            END;        RETURN 1;
         END IF;
     END isnumeric; 
      

  2.   


    谢谢,确实是build_id列有错误数据!
      

  3.   

    谢谢,a.build_id有问题,茅塞顿开,数据量很大,应该是没执行到!