neo4j CALL 过程

CALL子句用于调用数据库中procedure。

介绍

使用该子句来调用程序CALL

CALL子句还用于评估子查询。有关CALL此上下文中子句的描述,请参阅CALL {}(subquery)

每个过程调用都需要指定所有必需的过程参数。这可以通过在过程名称后使用括号括起来的逗号分隔列表显式地完成,也可以通过使用可用的查询参数作为过程调用参数隐式地完成。后一种形式仅在所谓的独立过程调用中可用,此时整个查询由单个CALL子句组成。

大多数过程都会返回具有一组固定结果字段的记录流,类似于运行 Cypher ®查询返回记录流的方式。YIELD子句用于明确选择将哪些可用结果字段作为新绑定的变量从过程调用返回给用户或供其余查询进一步处理。因此,为了能够用于YIELD显式列,需要提前知道输出参数的名称(和类型)。每个产生的结果字段都可以选择使用别名重命名(即)resultFieldName AS newName。过程调用绑定的所有新变量都将添加到当前范围中已绑定的变量集中。如果过程调用试图重新绑定先前绑定的变量(即,过程调用不能隐藏当前范围中先前绑定的变量),则会出错。在独立过程调用中,YIELD *可用于选择所有列。在这种情况下,不需要提前知道输出参数的名称。

有关如何确定CALL过程的输入参数和过程的输出参数的更多信息YIELD,请参阅查看过程的签名

在较大的查询中,具有显式的过程调用返回的记录YIELD可以使用WHERE后跟谓词的子句进行进一步过滤(类似于WITH ... WHERE ...)。

如果被调用过程声明了至少一个结果字段,YIELD则通常不能省略。但是YIELD在独立过程调用中始终可以省略。在这种情况下,所有结果字段都作为从过程调用到用户的新绑定变量产生。

Neo4j 支持过程的概念VOIDVOID过程是一种不声明任何结果字段且不返回结果记录的过程,并且已明确声明为VOID。调用VOID过程可能只会产生副作用,因此既不允许也不需要使用YIELDVOID在较大的查询中间调用过程只会传递每个输入记录(即,它就像WITH *记录流一样)。

Neo4j 附带许多内置程序。有关这些程序的列表,请参阅操作手册 → 程序

用户还可以开发自定义过程并部署到数据库。有关详细信息,请参阅Java 参考 → 用户定义过程

使用以下方式调用过程CALL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北京橙溪 www.enwing.com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值