将oracle操作st_geometry类型的常见sql整理了一下,省得每次都去文档找。
首先是查询坐标系和注册id:
SELECT table_name, srid
FROM sde.st_geometry_columns
WHERE table_name = 'GRID';
SELECT registration_id
FROM sde.table_registry
WHERE table_name = 'GRID'
AND owner = 'SDE';
其次是常见图形的构造方法:
- 对于线串、面和点
sde.st_geometry (wkt clob, srid integer)
- 对于优化的点(不启动 extproc 代理,因此查询的处理速度更快)
sde.st_geometry (x,y,z,m,srid)
在批量插入大量的点数据时,请使用优化的点构造。
- 对于参数圆
sde.st_geometry (x,y,z,m,radius,numPts,srid)
demos:
INSERT INTO GEOMS (id, geometry) VALUES (
1901,
sde.st_geometry ('point (1 2)', 0)
);
objectid可以通过查询获取:
insert INTO grid (OBJECTID,SHAPE) values (
sde.version_user_ddl.next_row_id('SDE', 7),
sde.st_geometry
('polygon (( 121 31, 121 30, 122 30, 121 31))',
4326)
);
最后将几何值转为文本:
详细内容可以在arcgis帮助里面查找st_geometry 函数引用SELECT id, sde.st_astext (geometry) description FROM RADII;