Oracle - 将SDO_GEOMETRY转换为WKT?

问题描述 投票:3回答:2

我是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 oracle-spatial
2个回答
1
投票

评论太长了 - 不知道为什么它不适合你,但我不能复制你的结果:

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)

1
投票

功能SDO_UTIL.TO_WKTGEOMETRY似乎没有Express版本(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;
© www.soinside.com 2019 - 2024. All rights reserved.