ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

向包含 ST_Geometry 列的表中插入要素

使用 SQL INSERT 语句和 ST_Geometry 函数将记录插入包含 ST_Geometry 列的表。

要插入 ST_Geometry 列的数据可采用以下几何格式之一表示:

  • 开放地理空间联盟 (OGC),可识别文本 (WKT) 表示
  • OGC 熟知二进制 (WKB) 表示

这些格式需要使用输入和输出转换函数将空间数据插入数据库以及从数据库检索空间数据。系统提供一些函数,用于将数据从这些外部格式转换为 Oracle、PostgreSQL 或 SQLite 数据库中存储的数据类型。对于 PostgreSQL,还提供了转换 Esri shapefile 格式的函数。

在下面的示例中,一些记录被插入到 Oracle、PostgreSQL 和 SQLite 数据库中的数据库表(sensitive_areas 和 hazardous_sites)内。在将面的熟知文本表示插入 Oracle 中 sensitive_areas 表的 ZONE 列之前,先使用 ST_Geometry 函数将其转换为 ST_Polygon 类型。在将面的熟知文本表示插入 PostgreSQL 和 SQLite 中 sensitive_areas 表的 ZONE 列之前,先使用 ST_Polygon 函数将其转换为 ST_Polygon 类型。同样,将点的熟知文本表示插入到 Oracle 中 hazardous_sites 表的 LOCATION 列之前,先使用 ST_Geometry 函数将其转换为 ST_Point 类型;将点的熟知文本表示插入到 PostgreSQL 和 SQLite 中 hazardous_sites 表的 LOCATION 列之前,先使用 ST_Point 函数将其转换为 ST_Point 类型。您还可以利用 ST_PolyFromWKB() 和 ST_PointFromWKB() 函数以熟知二进制格式输入数据。

  1. 登录 SQL 编辑器,以具有将数据插入到表中的权限的用户身份,连接到包含待插入数据的表的数据库。
  2. 使用 SQL INSERT 语句向 sensitive_areas 和 hazardous_sites 表添加记录。
    • Oracle
      INSERT INTO SENSITIVE_AREAS (area_id, name, area_size, type, zone) VALUES (
       1,
       'Summerhill Elementary School',
       67920.64,
       'school',
       sde.st_geometry('polygon ((52 28,58 28,58 23,52 23,52 28))', 4326)
      );
      
      INSERT INTO HAZARDOUS_SITES (row_id, site_id, name, location) VALUES (
       1,
       102,
       'W. H. Kleenare Chemical Repository',
       sde.st_geometry('point (52 24)', 4326)
      );
      
    • PostgreSQL
      INSERT INTO sensitive_areas (area_id, name, area_size, type, zone) VALUES (
       1,
       'Summerhill Elementary School',
       67920.64,
       'school',
       ST_Polygon('polygon ((52 28, 58 28, 58 23, 52 23, 52 28))', 4326)
      );
      
      INSERT INTO hazardous_sites (row_id, site_id, name, location) VALUES (
       1,
       102,
       'W. H. Kleenare Chemical Repository',
       ST_Point('point (52 24)', 4326)
      );
      
    • SQLite
      INSERT INTO sensitive_areas (name, area_size, type, zone) VALUES (
       'Summerhill Elementary School',
       67920.64,
       'school',
       ST_Polygon('polygon ((52 28, 58 28, 58 23, 52 23, 52 28))', 4326)
      );
      
      INSERT INTO hazardous_sites (site_id, name, location) VALUES (
       102,
       'W. H. Kleenare Chemical Repository',
       ST_Point('point (52 24)', 4326)
      );
      

相关主题

  • 与 ST_Geometry 配合使用的 SQL 函数

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2017 Esri. | 隐私政策 | 法律声明