如何将 WKB 格式的几何图形插入到 Oracle 数据库中的表中?

问题描述 投票:0回答:1

我在 Oracle SQL 数据库中有一个表,该表的字段之一是 SDO_GEOMETRY 类型。

我想在此表中插入一个几何图形,在本例中它只是一个点。
我知道像

SDO_GEOMETRY(2001, SDO_POINT(lon, lat, NULL), 4326, NULL, NULL)
这样的东西我可以插入我想要的数据,但我没有直接的经/纬度。

我只有WKB格式,比如

0101000020110F00003E2773E2619649408FCD44C7C4C64140
。我想插入一个用这种 WKB 格式构建的几何图形。我不想解析这个 WKB 并在我的代码中提取纬度/经度,然后像我提到的那样插入它。

最好的方法是什么?

我已经完成了这些方法,但都没有奏效:

SDO_UTIL.FROM_WKBGEOMETRY('0101000020110F00003E2773E2619649408FCD44C7C4C64140')
SDO_UTIL.FROM_WKBGEOMETRY(hextoraw('0101000020110F00003E2773E2619649408FCD44C7C4C64140'))
SDO_GEOMETRY('0101000020110F00003E2773E2619649408FCD44C7C4C64140', 4326)

database oracle gis
1个回答
0
投票

在表上添加 wkb 字段,然后添加触发器,一旦你更新 wkb 你将创建 geom

create or replace
TRIGGER GEOM_TRIGGER
after UPDATE of wkb ON your_table 
for each row
when (new.wkb IS NOT NULL)
BEGIN
:new.geom := SDO_UTIL.FROM_WKBGEOMETRY(new.wkb);
END;
© www.soinside.com 2019 - 2024. All rights reserved.