应该是Left或者Substring的第二个参数溢出了。不能取到数值。

解决方案 »

  1.   

    应该是类似于这种情况:select LEFT('aaa',-5)
    /*
    消息 536,级别 16,状态 1,第 4 行
    传递到 left 函数的长度参数无效。
    */
      

  2.   

    怎么样确定是哪个参数呢?看样子,也只有用排除法了,因为你的代码里,有很多地方用到了 left 和 substring
      

  3.   

    怎么样确定是哪个参数呢?看样子,也只有用排除法了,因为你的代码里,有很多地方用到了 left 和 substring
    好吧,看来要一个个拆分出来看看不知道有哪位大神有比较简单的排除方法
      

  4.   

    看着好乱啊,把高级语言的功能用 SQL 来实现并不是好办法。
      

  5.   

    原本不想这样的,可以原data里面有些数据是HTML的,必须用某些方法转化出来
      

  6.   


    你能不能找到,哪一行数据有问题,然后就用这行数据,来测试,找到有问题的left或substring
      

  7.   

    逐个排查法,例如在每个LEFT或SUBSTRING函数之后加类似于print 1,print 2,print 3...的语句,
    执行时,看打印出来1,2,3...中断在哪里,中断的那个left()或substring()函数就是有bug的.
      

  8.   

    按照版主的方法 还是没有找出来,但是 我知道 应该是left()函数的问题,后来去 看了数据库才发现有很多字段 多了 一些多余的字符导致没办法输出了谢谢各位回复的朋友们~