为什么sdo_arc_desify代码对我的oracle数据库表不起作用?

pvabu6sv  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(99)

我正在尝试更新一个具有加密弧几何的表:

update aip_radiofrequencyarea 
set extent_arc = SDO_GEOM.SDO_ARC_DENSIFY(
                   extent,
                   MDSYS.SDO_DIM_ARRAY(
                     MDSYS.SDO_DIM_ELEMENT('X',3460000,3475000,0.005),
                     MDSYS.SDO_DIM_ELEMENT('Y',5500000,5635000,0.005)
                   ),
                   MDSYS.SDO_DIM_ELEMENT('Z',0, 1000, 0.005),
                   'ARC_TOLERANCE=0.005'
                 );

这是我得到的错误消息:

SQL-Fehler: ORA-06553: PLS-306: wrong number of Arguments in 'SDO_ARC_DENSIFY'
06553. 00000 -  "PLS-%s: %s"
*Cause:    SQL compilation failed because of an illegal reference to a
           PL/SQL unit.
*Action:   If the PL/SQL error message does not provide a workaround, then
           try the SQL statement as a top-level call as the appropriate user
           with the appropriate privileges.

有人知道为什么吗?

bjg7j2ky

bjg7j2ky1#

你把MDSYS.SDO_DIM_ELEMENT('Z',0, 1000, 0.005)作为SDO_ARC_DENSIFY的第三个参数,而它应该是SDO_DIM_ARRAY的一个元素:

update aip_radiofrequencyarea 
set extent_arc = SDO_GEOM.SDO_ARC_DENSIFY(
                   extent,
                   MDSYS.SDO_DIM_ARRAY(
                     MDSYS.SDO_DIM_ELEMENT('X',3460000,3475000,0.005),
                     MDSYS.SDO_DIM_ELEMENT('Y',5500000,5635000,0.005),
                     MDSYS.SDO_DIM_ELEMENT('Z',0, 1000, 0.005)
                   ),
                   'ARC_TOLERANCE=0.005'
                 );

fiddle

相关问题