我突然收到以下错误:
ORA-13029 - Invalid SRID in the SDO_GEOMETRY object
尝试使用触发器更新表的几何图形时。新几何对象的 SRID 设置为 3009。表的元数据设置为 SRID 3009,表中的所有几何都设置为 SRID 3009,所以在我看来应该不会出现错误?
任何关于寻找更多内容的建议都会有所帮助。
据悉,从 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。