使用Neo4j官方存储过程模板调用自定义存储过程报错求助
解决Neo4j自定义存储过程调用报错问题
错误原因分析
- 第一个报错是因为Neo4j 4.4+版本要求,在MATCH等查询语句内调用有返回结果的存储过程时,必须显式通过
YIELD指定要接收的输出字段,不能依赖隐式返回结果。 - 第二个报错是因为你指定的
result并非该存储过程定义的输出参数名称,需要使用存储过程代码中声明的正确输出名。
正确调用方式
根据官方模板中的example.getRelationshipTypes存储过程定义,它的输出参数名为relationshipType,正确调用语句如下:
MATCH (n:Person) CALL example.getRelationshipTypes(n) YIELD relationshipType RETURN relationshipType
通用排查方法
如果后续遇到类似输出参数名称不确定的情况,可以执行以下语句查看目标存储过程的详细定义,从outputs字段确认正确的输出参数名:
CALL dbms.procedures() YIELD name, outputs WHERE name = 'example.getRelationshipTypes' RETURN outputs
内容的提问来源于stack exchange,提问作者drdot
相关产品推荐
相关产品推荐

