更新 ST_Geometry 空间列中的值

正如可更改其他属性类型一样,SQL UPDATE 语句也可用于更改空间列中的值。通常,空间属性数据必须从表中检索出来,在客户端应用程序中进行更改,然后再返回到服务器。

以下 SQL 语句说明了对于所有受支持的数据库,如何获取并更新 hazardous_sites 表中某一行的空间数据:

步骤:
  1. 打开 SQL 编辑器并连接到数据库。

    使用对表具有更新权限的帐户进行连接。

  2. 更新 ST_Geometry 列中存储的值。
    • Oracle
      UPDATE hazardous_sites 
       SET location = sde.st_geometry('point (18 57)', 4326) 
       WHERE site_id = 102;
      
    • PostgreSQL
      UPDATE hazardous_sites 
       SET location = st_point('point (18 57)', 4326) 
       WHERE site_id = 102;
      
    • SQLite
      UPDATE hazardous_sites 
       SET location = st_point('point (18 57)', 4326) 
       WHERE site_id = 2;
      
    • IBM DB2
      UPDATE hazardous_sites 
       SET location = db2gse.st_pointfromtext('point(18 57)', 1) 
       WHERE site_id = 102
      
    • IBM Informix
      UPDATE hazardous_sites 
       SET location = st_pointfromtext('point(18 57)', 1) 
       WHERE site_id = 102
      
5/25/2014