在 ArcGIS 中的数据库之间复制和粘贴数据
通过 ArcGIS for Desktop 可以复制数据库中的数据,并将其粘贴到另一个数据库或地理数据库。
将数据从一个数据库类型移动到另一个数据库类型时,可能会改变表中属性所用的数据类型。例如,如果从 SQL Server 复制包含 UniqueIdentifier 字段的表,当将其粘贴到 PostgreSQL 数据库时,将变为 Varchar 字段。
请注意,ArcGIS 无法粘贴其不支持的数据类型或定义。这意味着在目标数据库中创建的表或要素类将包含:
- ArcGIS 支持的数据类型
任何无法映射到 ArcGIS 数据类型的列都不会在目标数据库的要素类中创建。有关支持的数据类型列表的信息,请参阅 ArcGIS 中支持的数据类型。
- 一个空间列
对于要素类,将使用遇到的第一个空间列;不会在目标要素类中创建第二个空间列。如果要使用第二个空间列,则需要在只包含第二个空间列的源表上定义视图或查询图层。如果要创建视图,可从源数据库中复制该视图,然后将其粘贴到目标数据库中。如果要定义查询图层,可将数据从查询图层导出到目标数据库的新要素类中。
- 一种几何类型
如果源要素类包含多种几何类型(点、线、面、多点),则将要素类粘贴到目标数据库中时,ArcGIS 会使用源要素类中位于第一行的几何类型。如果要控制在目标要素类中使用哪种几何类型,则需要创建源要素类的查询图层并定义要使用的几何类型,然后将数据从查询图层导出到目标数据库中。执行该操作时,在目标数据库中创建的要素类将仅包含为查询图层定义的几何类型的记录。
- 一个维数
如果源要素类中的记录是使用不同维数(xy、xyz、xym、xyzm)定义的,则 ArcGIS 将使用源要素类中第一行的维数;将不会在目标要素类中创建与该维数不匹配的记录。如果要指定在目标要素类中使用的维数,则需要创建源要素类的查询图层并定义要使用的维数。然后将数据从查询图层导出到目标数据库中。执行该操作后,在目标数据库创建的要素类中的所有记录都将使用该维数。例如,如果将查询图层定义为具有 z 纬度而没有 m 维度,则源要素类中具有 m 维度信息的所有记录在目标要素类中将不会具有 m 维度。同样,源要素类中仅有 x,y 坐标的任何记录在目标要素类中将具有 x,y 和 z 坐标(z 坐标被设置为 0)。
- 一个空间参考
如果源要素类具有 ArcGIS 可识别的已定义空间参考,则目标数据库中的要素类将使用相同的空间参考。如果没有为要素类定义空间参考,则 ArcGIS 将使用位于表中第一行的空间参考。将不会在目标数据库的要素类中创建与该空间参考不匹配的记录。然而,如果无法识别表或第一行的空间参考(例如,当使用自定义空间参考时),则目标要素类中使用的空间参考将取决于 DBMS。有关详细信息,请参阅空间参考中的“如何在 ArcGIS 中使用空间参考系统”部分。
以下步骤说明了如何在数据库之间或在地理数据库和数据库之间通过复制和粘贴移动表、要素类或视图。
- 启动 ArcMap,然后打开目录 窗口。
- 从目录树建立与源数据库和目标数据库的连接。
确保连接到源数据库的用户具有访问源数据库中数据的权限,并且连接到目标数据库的用户具有足够的权限来创建表。
- 如有必要,请准备要移动的数据或要素类上包含在要素类内的多个空间列,以确定将要根据源要素类的属性创建的属性和列。
如果要创建查询图层,可继续执行这些步骤,将数据移动到目标数据库中。
- 右键单击源数据库中的表、要素类或视图,然后单击复制。
- 右键单击目录树中的目标数据库,然后单击粘贴。
目标数据库中数据的所有者是您连接数据库时使用的登录帐户。
注:要将数据粘贴到 PostgreSQL 或 SQL Server 数据库中,连接到目标数据库的用户必须具有名称与数据库用户名相同的方案。
- 如果要移动要素类,请打开数据传输 对话框,这样可以选择将哪种空间类型用于目标数据库中的空间列。单击配置关键字列,从下拉列表中选择空间类型,然后单击确定。
新的表或要素类即在目标数据库中创建。