请问向新表导入数据时报错怎么办?[阿里云MaxCompute]

请问向新表导入数据,insert overwrite table demo_target_0722 PARTITION ( dt = ‘20170903’ ) select a,b,c,d,e,f,g from demo_src_0722,报错FAILED: ODPS-0130071:Semantic analysis exception – Cannot insert into target table because column number/types are different : line 1:23 ”20170903”: Table insclause-0 has 6 columns, but query has 7 columns怎么办?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. 这是可能是因为您的源表和目标表的列数或类型不一致导致的,可以检查源表和目标表的列数和类型是否一致。如果不一致,可以尝试修改源表或目标表的列数和类型,一致后应该不会出现报错;也可能是没有在demo_target_0722表中定义分区字段dt,检查表定义是否正确。

  2. 根据报错信息来看select a,b,c,d,e,f,g from demo_src_0722,你查询了7个字段的数据,然后执行向目标表中insert into 时,target table目标表的字段数不匹配,也就是目标表只有6列,即6个字段 Table insclause-0 has 6 columns, but query has 7 columns,而你实际查询出了7个字段,也就是7列数据,建议去掉查询语句中无效的列

  3. 错误里面写明白了,查询有7列,分别是:[a、b、c、d、e、f、g],但目标表demo_target 只有 6 列,查查是不是漏了点啥?

    1. 检查新表的字段类型是否与原表的字段类型匹配;
    2. 检查新表的字段长度是否与原表的字段长度匹配;
    3. 检查新表的字段是否有空值;
    4. 检查新表的字段是否有重复值;
    5. 检查新表的字段是否有不符合要求的值;
    6. 检查新表的字段是否有不允许为空的值;
    7. 检查新表的字段是否有不允许重复的值;
  4. 您好,这是由于向目标表插入数据时,源表和目标表的列数量或类型不匹配导致的。您可以检查源表字段,增加相应字段,或者用create table demo_0722 as来解决。