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

3gtaxfhh  于 2023-04-11  发布在  Oracle
关注(0)|答案(1)|浏览(177)

我在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)
umuewwlo

umuewwlo1#

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

相关问题