You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:55:16