我在 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)
在表上添加 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;