Oracle Cloud ADB属性图最短路径查询遇ORA-02000错误求助
修正Oracle ADB属性图最短路径查询的方法
你的查询触发ORA-02000错误,核心原因是GRAPH_TABLE子句里的语法不符合Oracle属性图规范——指定属性图名称时,不需要额外添加GRAPH关键字。
针对你的social_graph属性图,正确的最短路径查询语句如下:
SELECT * FROM GRAPH_TABLE( social_graph MATCH SHORTEST_PATH(p) = (a)-[k*1..]->(b) WHERE a.name='Alice' AND b.name='Dave' COLUMNS(a.name, b.name, p) );
错误细节说明
原查询中写了GRAPH social_graph,这属于冗余语法,导致SQL解析器无法正确识别后续的MATCH关键字位置,因此抛出"missing MATCH keyword"错误。只需去掉多余的GRAPH关键字,保留属性图名称即可解决问题。
如果需要查看路径中每条边的具体属性,还可以调整COLUMNS子句来展开路径细节:
SELECT * FROM GRAPH_TABLE( social_graph MATCH SHORTEST_PATH(p) = (a)-[k*1..]->(b) WHERE a.name='Alice' AND b.name='Dave' COLUMNS( a.name AS 起始节点, b.name AS 目标节点, k.from_id AS 边起点ID, k.to_id AS 边终点ID, k.strength AS 关系强度, p AS 完整路径 ) );
内容的提问来源于stack exchange,提问作者fmatz
相关产品推荐
相关产品推荐

