文档解释
ORA-13224: zero tolerance specified for layer in USER_SDO_GEOM_METADATA
Cause: A tolerance of zero or NULL is supplied for a layer in USER_SDO_GEOM_METADATA view.
Action: Check the tolerance specified to make sure it is a positive value.
ORA-13224 这个错误表明,在用户提供的SDO_GEOM_METADATA元数据中指定了某一层的零容忍度。
官方解释
ORA-13224回报错误,因为在提供给SDO_GEOM_METADATA的表中,已指定了某一个层的零容忍度。
常见案例
假设我们有以下表格:
CREATE TABLE geotab (
geoid NUMBER,
geom SDO_GEOMETRY
);
接下来,如果我们创建使用 SDO_GEOM_METADATA 配置的索引:
begin
dbms_sdo_geom_metadata.create (
‘GEOTAB’,
‘GEOM’,
sdo_dim_array (
sdo_dim_element (‘LONG’, -180, 180, 0.5),
sdo_dim_element (‘LAT’, -90, 90, 0.5)
),
8265
);
dbms_sdo_geom_metadata.configure_layer_gb (
‘GEOTAB’,
‘GEOM’,
0.05,
‘STATE_BORDERS’
);
end;
此时,系统在每一层都要求我们规定容忍度,否则将会出现 ORA-13224 错误。
正常处理方法及步骤
正确处理 ORA-13224 错误方法如下:
首先检查表格中的SDO_GEOM_METADATA元数据是否正确,以及索引配置的拓扑网络是否正确,指定容忍度等信息;
接下来,确定正确的容忍度,并按照正确的方法将其添加到SDO_GEOM_METADATA中;
最后,重新加载元数据并重建索引。