我有一个Oracle查询,用于分析SDO_GEOMETRY多边形的顶点:
WITH lines AS
(SELECT SDO_UTIL.FROM_WKTGEOMETRY('MULTILINESTRING ((0 5 0, 10 10 10, 30 0 33.54),(50 10 33.54, 60 10 -10000))') tline
FROM dual)
SELECT ct.id,ct.x, ct.y, ct.z as clcorr, vt.z as clorig
FROM lines,
TABLE(sdo_util.getvertices(SDO_LRS.CONVERT_TO_LRS_GEOM(SDO_CS.make_2d(tline)))) ct
JOIN table(sdo_util.getvertices(tline)) vt
ON ct.id=vt.id;该查询适用于Oracle18c的db<>fiddle:
但是,相同的查询在Oracle21c的db<>fiddle中产生一个错误:
ORA-00904: "CT"."Z": invalid identifier为什么Oracle21c的db<>fiddle中的查询不能工作?
发布于 2022-04-18 14:30:04
sdo_util.from_wktgeometry还不支持甲骨文自主数据库的共享基础设施(ADW,ATP-S).目前,它需要在数据库中使用Java,这是https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/unavailable-oracle-database-features.html中列出的限制。对于具有此限制的操作,空间文档在under下包括一个注释,例如https://docs.oracle.com/en/database/oracle/oracle-database/21/spatl/SDO_UTIL-reference.html#GUID-EFDD565A-E565-4463-9CFC-464DC856ECB7。这一限制正在得到解决。
发布于 2022-04-20 17:22:08
关于后续问题,问题似乎与联接运算符有关.这在21c db<>fiddle中是可行的:
WITH lines AS
(SELECT SDO_UTIL.FROM_WKTGEOMETRY('MULTILINESTRING ((0 5 0, 10 10 10, 30 0 33.54),(50 10 33.54, 60 10 -10000))') tline
FROM dual)
SELECT ct.id,ct.x, ct.y, ct.z as clcorr, vt.z as clorig
FROM lines,
TABLE(sdo_util.getvertices(SDO_LRS.CONVERT_TO_LRS_GEOM(SDO_CS.make_2d(tline)))) ct,
TABLE(sdo_util.getvertices(tline)) vt
WHERE ct.id=vt.id;https://dba.stackexchange.com/questions/310955
复制相似问题