0

我突然收到以下错误:

ORA-13029 - Invalid SRID in the SDO_GEOMETRY object

尝试使用触发器更新表的几何图形时。新几何对象的 SRID 设置为 3009。表的元数据设置为 SRID 3009,表中的所有几何都设置为 SRID 3009,所以在我看来应该不会出现错误?

任何关于寻找更多内容的建议都会有所帮助。

4

1 回答 1

0

据悉,从 12c 迁移到 19c 后,3D 几何在 19c 中被报告为 INVALID,但在 12.2 中被评估为 VALID。例子:

12.2.0.1

SQL> select instance_name, version from v$instance;

INSTANCE_NAME    VERSION
---------------- -----------------
ORCL_12c         12.2.0.1.0

SQL> SELECT toid,
  2     t.geometry.SDO_SRID SRID,
  3     SUBSTR(t.geometry.SDO_GTYPE, 1, 1) DIM_COUNT,
  4     SUBSTR(t.geometry.SDO_GTYPE, 4, 1) GTYPE,
  5     SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(t.geometry, 0.05) VALIDATION_RES
  6  FROM test_geom t;

TOID                     LENGTH DIM_ GTYP VALIDATION_RES
-------------------- ---------- ---- ---- ---------------
testdata101               27700 3    3    TRUE
testdata201               27700 3    3    TRUE
testdata301               27700 3    3    TRUE
testdata401               27700 3    3    TRUE
testdata501               27700 3    3    TRUE

19c

SQL> select instance_name, version from v$instance;

INSTANCE_NAME    VERSION
---------------- -----------------
ORCL_19c         19.0.0.0.0

SQL> SELECT toid,
  2     t.geometry.SDO_SRID SRID,
  3     SUBSTR(t.geometry.SDO_GTYPE, 1, 1) DIM_COUNT,
  4     SUBSTR(t.geometry.SDO_GTYPE, 4, 1) GTYPE,
  5     SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(t.geometry, 0.05) VALIDATION_RES
  6  FROM test_geom t;

TOID                     LENGTH DIM_ GTYP VALIDATION_RES
-------------------- ---------- ---- ---- ---------------
testdata101               27700 3    3    13029
testdata201               27700 3    3    13029
testdata301               27700 3    3    13029
testdata401               27700 3    3    13029
testdata501               27700 3    3    13029

此行为是由于未发布的软件缺陷造成的。应用修复此问题的最新 Spatial MERGE patch.31022826。

于 2020-07-15T08:41:28.860 回答