2023年11月25日发(作者:)

ArcGIS中的数据库之间复制和粘贴数据

ArcGIS 中的数据库之间复制和粘贴数据

通过 ArcGIS for Desktop 可以复制数据库中的数据,并将其粘贴到另⼀个数据库或地理数据

库。将数据从⼀个数据库类型移动到另⼀个数据库类型时,可能会改变表中属性所⽤的数据类

型。例如,如果从 SQL Server 复制包含 UniqueIdentifier 字段的表,当将其粘贴到

PostgreSQL 数据库时,将变为 Varchar 字段。

请注意,ArcGIS ⽆法粘贴其不⽀持的数据类型或定义。这意味着在⽬标数据库中创建的表或要

素类将包含:

*ArcGIS ⽀持的数据类型

任何⽆法映射到 ArcGIS 数据类型的列都不会在⽬标数据库的要素类中创建。有关⽀持的数据类

型列表的信息,请参阅 ArcGIS 中⽀持的数据类型。

*⼀个空间列

对于要素类,将使⽤遇到的第⼀个空间列;不会在⽬标要素类中创建第⼆个空间列。如果要使

⽤第⼆个空间列,则需要在只包含第⼆个空间列的源表上定义视图或查询图层。如果要创建视

图,可从源数据库中复制该视图,然后将其粘贴到⽬标数据库中。如果要定义查询图层,可将

数据从查询图层导出到⽬标数据库的新要素类中。

⼀种⼏何类型

如果源要素类包含多种⼏何类型(点、线、⾯、多点),则将要素类粘贴到⽬标数据库中

时,ArcGIS 会使⽤源要素类中位于第⼀⾏的⼏何类型。如果要控制在⽬标要素类中使⽤哪种⼏

何类型,则需要创建源要素类的查询图层并定义要使⽤的⼏何类型,然后将数据从查询图层导

出到⽬标数据库中。执⾏该操作时,在⽬标数据库中创建的要素类将仅包含为查询图层定义的

⼏何类型的记录。

⼀个维数

如果源要素类中的记录是使⽤不同维数(xyxyzxymxyzm)定义的,则 ArcGIS 将使⽤源

要素类中第⼀⾏的维数;将不会在⽬标要素类中创建与该维数不匹配的记录。如果要指定在⽬

标要素类中使⽤的维数,则需要创建源要素类的查询图层并定义要使⽤的维数。然后将数据从

查询图层导出到⽬标数据库中。执⾏该操作后,在⽬标数据库创建的要素类中的所有记录都将

使⽤该维数。例如,如果将查询图层定义为具有 z 纬度⽽没有 m 维度,则源要素类中具有 m

度信息的所有记录在⽬标要素类中将不会具有 m 维度。同样,源要素类中仅有 x,y 坐标的任何

记录在⽬标要素类中将具有 x,y z 坐标(z 坐标被设置为 0)。

⼀个空间参考

如果源要素类具有 ArcGIS 可识别的已定义空间参考,则⽬标数据库中的要素类将使⽤相同的空

间参考。如果没有为要素类定义空间参考,则 ArcGIS 将使⽤位于表中第⼀⾏的空间参考。将不

会在⽬标数据库的要素类中创建与该空间参考不匹配的记录。然⽽,如果⽆法识别表或第⼀⾏

的空间参考(例如,当使⽤⾃定义空间参考时),则⽬标要素类中使⽤的空间参考将取决于

DBMS。有关详细信息,请参阅空间参考中的如何在 ArcGIS 中使⽤空间参考系统部分。

以下步骤说明了如何在数据库之间或在地理数据库和数据库之间通过复制和粘贴移动表、要素

类或视图。

步骤:

启动 ArcMap,然后打开⽬录 窗⼝。

从⽬录树建⽴与源数据库和⽬标数据库的连接。

确保连接到源数据库的⽤户具有访问源数据库中数据的权限,并且连接到⽬标数据库的⽤户具

有⾜够的权限来创建表。

如有必要,请准备要移动的数据或要素类上包含在要素类内的多个空间列,以确定将要根据源

要素类的属性创建的属性和列。

如果要创建查询图层,可继续执⾏这些步骤,将数据移动到⽬标数据库中。

如果要移动包含具有不同维数、⼏何类型或空间参考的记录的要素类,可将表拖动到地图上并

修改⽣成的查询图层(通过选择⼀个维数、⼏何类型或空间参考)。要将数据移动到⽬标数据

库,请导出查询图层。(不能复制和粘贴查询图层。)

如果要素类有多个空间列,则需创建数据库视图(所创建的数据库视图仅包含其中⼀个空间

列),然后继续执⾏复制和粘贴。

右键单击源数据库中的表、要素类或视图,然后单击复制。

右键单击⽬录树中的⽬标数据库,然后单击粘贴。

⽬标数据库中数据的所有者是您连接数据库时使⽤的登录帐户。

:要将数据粘贴到 PostgreSQL SQL Server 数据库中,连接到⽬标数据库的⽤户必须具有名

称与数据库⽤户名相同的⽅案。