shp2pgsql"错误:INSERT具有比表达式更多的目标列"

时间:2018-05-08 13:03:17

标签: postgis postgresql-9.6

我使用Postgis中loader_generate_script提供的脚本来加载Tiger人口普查数据,并在加载EDGE数据时收到错误消息。我可以通过将-v ON_ERROR_EXIT=1附加到所有psql来电来找到错误。

NOTICE:  INSERT INTO tiger_data.al_edges(statefp,countyfp,tlid,tfidl,tfidr,mtfcc,fullname,smid,lfromadd,ltoadd,rfromadd,rtoadd,zipl,zipr,featcat,hydroflg,railflg,roadflg,olfflg,passflg,divroad,exttyp,ttyp,deckedroad,artpath,persist,gcseflg,offsetl,offsetr,tnidf,tnidt,the_geom) SELECT statefp,countyfp,tlid,tfidl,tfidr,mtfcc,fullname,smid,lfromadd,ltoadd,rfromadd,rtoadd,zipl,zipr,featcat,hydroflg,railflg,roadflg,olfflg,passflg,exttyp,ttyp,deckedroad,artpath,persist,gcseflg,offsetl,offsetr,tnidf,tnidt,the_geom FROM tiger_staging.al_edges;
ERROR:  INSERT has more target columns than expressions
LINE 1: ...tpath,persist,gcseflg,offsetl,offsetr,tnidf,tnidt,the_geom) ...

该错误非常清楚地表明列不匹配(SELECT语句缺少名为divroad的列。如何在shp2psql中缓解这一点,因为这是INSERT什么是创建{{1}}声明。感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

原来这个问题源于我的postgis版本。 Azure托管postgres使用POSTGIS="2.3.2 r15302"作为Postgis扩展,看起来TIGER2017数据问题已在2.4.1 of postgis中修补。解决方案是升级Postgis,但这可能意味着暂时不使用Azure管理。