如何在WKB格式插入一个几何在Oracle数据库表?



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

我想在这个表中插入一个几何图形,在这个例子中只有一个点。
我知道像SDO_GEOMETRY(2001, SDO_POINT(lon, lat, NULL), 4326, NULL, NULL)这样的东西,我可以插入我想要的数据,但我没有直接的lon/lat。

我只有WKB格式,例如0101000020110F00003E2773E2619649408FCD44C7C4C64140。我想插入一个几何图形,这是建立在这个WKB格式。我不想解析这个WKB并在我的代码中提取纬度,然后像我提到的那样插入它。

最好的方法是什么?

我尝试过这些方法,但都没有成功:

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

在表中添加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;

相关内容

最新更新