insert into cb21(acb221,aac034,acb222)select substr(bch235,1,2),aac034,substr(bch235,4,5) from cb83
为什么会报无效的数字,这样写有错吗?
各位大侠帮帮忙,新手啊!

解决方案 »

  1.   

    是不是选择出来的记录的中某列提数据类型与插入表对应列的类型不一致啊。
    再有substr(字符串,起始位置,字符串长度),是不是提供的参数不合理啊。
      

  2.   

    lz执行下面的SQL看得到什么值,应该是对应的字段类型不匹配
    select substr(bch235,1,2),aac034,substr(bch235,4,5) from cb83
      

  3.   

    应当是acb221,acb222中的一列的数据类型是数字,而select结果中的包含了无法转换成数字的字符串,就会造成这种错误。
      

  4.   

    substr()方法理解错误了吧!substr(字符串,起始位置,字符串长度)
      

  5.   

    insert into cb21
      (acb221, aac034, acb222)
      select nvl(substr(bch235, 1, 2),0), aac034, nvl(substr(bch235, 4, 5),0) from cb83
      

  6.   

    desc cb21desc cb83查下两个表的结构