[英]Oracle - Converting SDO_GEOMETRY to WKT?
我是oracle空间的新手。
我有一个带有一个SDO_GEOMETRY列的空间表。 在此表中插入POINT数据后,我想检索WKT格式的数据。
这是我做的:
插入数据 -
INSERT INTO new_test (name, geom) VALUES (
'Test',
SDO_GEOMETRY(
2001,
4326,
SDO_POINT_TYPE(12,14,NULL),
NULL,
NULL));
获取数据 -
SELECT NAME, SDO_UTIL.TO_WKTGEOMETRY(GEOM) AS point FROM NEW_TEST;
输出 -
NAME | POINT
-------------
Test | (null)
为什么我在这里得到null? 它不应该显示坐标点吗?
评论太长了 - 不知道为什么它不适合你,但我不能复制你的结果:
Oracle安装程序 :
CREATE TABLE new_test ( name varchar2(20), geom SDO_GEOMETRY );
INSERT INTO new_test (name, geom)
VALUES (
'Test',
SDO_GEOMETRY( 2001, 4326, SDO_POINT_TYPE(12,14,NULL), NULL, NULL)
);
查询 :
SELECT NAME, SDO_UTIL.TO_WKTGEOMETRY(GEOM) AS point FROM NEW_TEST;
输出 :
NAME POINT
---- -----------------
Test POINT (12.0 14.0)
Express版本似乎没有SDO_UTIL.TO_WKTGEOMETRY
功能( Source - Siva Ravada-Oracle ):
Oracle Express在数据库中没有Javavm,WKT转换例程需要此功能,因为该功能是作为Java存储过程实现的。 因此Express版本不支持这些WKT例程。
您仍然可以像这样建立自己的WKT(点数):
SELECT name, 'POINT ('||t.X||' '||t.Y||')' AS point FROM NEW_TEST p, TABLE(SDO_UTIL.GETVERTICES(p.GEOM)) t;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.