Oracle 12c调用SDO_NET.FIND_CONNECTED_COMPONENTS报参数错误求助
Oracle SDO_NET.FIND_CONNECTED_COMPONENTS 参数错误问题排查
我正在使用Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production创建Oracle网络模型,用于分析光纤通信网络。所有步骤均执行成功,但调用SDO_NET.FIND_CONNECTED_COMPONENTS时始终报错误:PLS-00306: wrong number or types of arguments in call to 'FIND_CONNECTED_COMPONENTS',希望有人能指出修正方法。
问题复现步骤
-- 创建网络 EXEC SDO_NET.CREATE_SDO_NETWORK('TEST2',1,FALSE,FALSE); -- 验证元数据是否创建 SELECT * FROM USER_SDO_NETWORK_METADATA; -- 验证节点、链路和路径表是否创建 DESCRIBE TEST2_NODE$; DESCRIBE TEST2_LINK$; DESCRIBE TEST2_PATH$; -- 为各表插入空间元数据 INSERT INTO USER_SDO_GEOM_METADATA VALUES ( 'TEST2_NODE$', 'GEOMETRY', MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT('X', 200000.0, 1900000.0, 0.0005), MDSYS.SDO_DIM_ELEMENT('Y', 300000.0, 1800000.0, 0.0005) ), 3005 ); INSERT INTO USER_SDO_GEOM_METADATA VALUES ( 'TEST2_LINK$', 'GEOMETRY', MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT('X', 200000.0, 1900000.0, 0.0005), MDSYS.SDO_DIM_ELEMENT('Y', 300000.0, 1800000.0, 0.0005) ), 3005 ); INSERT INTO USER_SDO_GEOM_METADATA VALUES ( 'TEST2_PATH$', 'GEOMETRY', MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT('X', 200000.0, 1900000.0, 0.0005), MDSYS.SDO_DIM_ELEMENT('Y', 300000.0, 1800000.0, 0.0005) ), 3005 ); -- 验证网络有效性 SELECT SDO_NET.validate_network('TEST2') FROM DUAL; -- 返回 TRUE -- 创建最小化网络示例 -- 节点1 INSERT INTO TEST2_NODE$ (node_id, node_name, geometry) VALUES (2,'BL-OR',MDSYS.SDO_GEOMETRY(2001, 3005, MDSYS.SDO_POINT_TYPE(1208829.98094467, 483100.114700435, NULL), NULL, NULL)); -- 节点2 INSERT INTO TEST2_NODE$ (node_id, node_name, geometry) VALUES (6,'BL-OR',MDSYS.SDO_GEOMETRY(2001, 3005, MDSYS.SDO_POINT_TYPE(1208390.49330847, 479562.751714209, NULL), NULL, NULL)); -- 节点3 INSERT INTO TEST2_NODE$ (node_id, node_name, geometry) VALUES (10,'BL-OR',MDSYS.SDO_GEOMETRY(2001, 3005, MDSYS.SDO_POINT_TYPE(1210090.56995981, 478616.028058535, NULL), NULL, NULL)); -- 链路1(节点1 - 节点2) INSERT INTO TEST2_link$ (link_id, link_name, start_node_id, end_node_id, COST, LINK_LEVEL , geometry) VALUES (2,'BL-OR',2,6,1,1, MDSYS.SDO_GEOMETRY(2006, 3005, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 2, 1), MDSYS.SDO_ORDINATE_ARRAY(1208829.98094467, 483100.114700435, 1208390.49330847, 479562.751714209))); -- 链路2(节点2- 节点3) INSERT INTO TEST2_link$ (link_id, link_name, start_node_id, end_node_id, cost, geometry) VALUES (6,'BL-OR',6,10,0, MDSYS.SDO_GEOMETRY(2006, 3005, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 2, 1), MDSYS.SDO_ORDINATE_ARRAY(1208390.49330847, 479562.751714209, 1210090.56995981, 478616.028058535))); -- 再次验证网络 SELECT SDO_NET.validate_network('TEST2') FROM DUAL; -- 返回 TRUE SELECT SDO_NET.GET_NO_OF_NODES('TEST2') FROM DUAL; -- 返回 3 SELECT SDO_NET.GET_NO_OF_LINKS('TEST2') FROM DUAL; -- 返回 2 SELECT SDO_NET.GET_ISOLATED_NODES('TEST2') FROM DUAL; -- 返回 null SELECT SDO_NET.GET_INVALID_LINKS('TEST2') FROM DUAL; -- 返回 null SELECT SDO_NET.GET_NODE_DEGREE('TEST2', 6) FROM DUAL; -- 返回 2 -- 查找连通组件 EXECUTE SDO_NET.FIND_CONNECTED_COMPONENTS('TEST2');
错误信息
Error starting at line : 2 in command - BEGIN SDO_NET.FIND_CONNECTED_COMPONENTS('TEST2'); END; Error report - ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'FIND_CONNECTED_COMPONENTS' ORA-06550: line 1, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:
更新记录
2024/01/22:已与DBA协作获取该过程所需的日志文件写入目录,感谢@Littlefoot。
内容的提问来源于stack exchange,提问作者Peter S
相关产品推荐
相关产品推荐

