数据转换导入到PostgreSQL等网络数据库时,提示"创建目的类失败。IO错误。PGError:Caller is CPG_IDataBase::Create_FeatureTable..."?
答:PostgreSQL等网络数据库,对其数据表的名称有一定限制,如PostgreSQL数据库,限制长度不能超过63字节,名称通常由小写字母、数字和下划线(_)组成,且应以字母或下划线开头。具体各数据库keyword限制需其官方说明。
MapGIS连接网络数据库并构建数据库时,可选择"类名和表名一致"。若勾选,在该数据库中创建的空间数据,其名称和数据库中存储表名一致,因此空间数据名称同等受限于数据库keyword等规则限制。
MapGIS本地hdf/hdb数据库并没有这么多限制,当hdf/hdb中空间数据或本地shp等数据,其名称规则不符合数据库表名限制时,执行数据转换会失败,提示"创建目的类失败。IO错误。PGError:Caller is CPG_IDataBase::Create_FeatureTable..."。
因此,除非项目强烈要求空间数据存储名称与其在数据库中存储表名必须一致,不建议用户在构建数据库时勾选"类名和表名一致"。并且,当项目要求此项内容时,创建的空间数据名称必须符合要求。