3.3.21 CALL語句
CALL語句用于調用數據庫中的過程(Procedure)。使用CALL語句調用過程時,需要指定所需要的參數。可以通過在過程名的后面使用逗號分隔的列表來顯式地指定,也可以使用查詢參數來作為過程調用的實參。后者僅適用于在單獨的過程調用中作為參數,即整個查詢語句只包含一個單一的CALL調用。
大多數的過程返回固定列的記錄流,類似于Cypher查詢返回的記錄流。YIELD子句用于顯式地選擇返回結果集中的哪些部分并綁定到一個變量以供后續的查詢引用。在一個更大的查詢內部,過程調用返回的結果可以顯式地使用YIELD引入一個WHERE子句來過濾結果(類似WITH …WHERE …)。
Neo4j支持VOID過程。VOID過程既沒有聲明任何結果字段,也不返回任何結果記錄。調用VOID過程可能有一個副作用,就是它既不允許也不需要使用YIELD。在一個大的查詢中調用VOID過程,就像WITH *在記錄流的作用那樣簡單地傳遞輸入的每一個結果。
下面的例子顯示了如何傳遞實參并從一個過程中返回結果字段,所有的例子將使用下面的過程:

3.3.21.1 調用過程
本例調用數據庫內嵌的過程db.labels,它可列出數據庫中的所有標簽。
查詢:

結果:

3.3.21.2 使用命名空間和名字調用過程
本例調用數據庫內嵌的過程db.labels,它可列出數據庫中的所有標簽。
查詢:

結果:

3.3.21.3 使用字面值參數調用過程
下面使用字面值參數調用了例子中的過程org.neo4j.procedure.example.addNodeToIndex,參數直接寫在語句中。
查詢:

因為例子中的過程不返回任何結果,因此結果將返回空。
結果:

3.3.21.4 使用參數作為實參調用過程
這里使用參數作為實參調用了例子中的過程org.neo4j.procedure.example.addNodeToIndex。每個過程的實參所取的值為參數語句中同名的參數對應的值(如果沒有這個參數,則值為null)。
參數:

查詢:

因為例子中的過程不返回任何結果,因此結果將為空。
結果:

3.3.21.5 混合使用字面值和參數調用過程
這里,混合使用字面值和參數來作為過程的參數來調用例子中的過程org.neo4j.procedure.example.addNodeToIndex。
參數:

查詢:

因為例子中的過程不返回任何結果,因此結果將為空。
結果:

3.3.21.6 使用字面值和默認實參調用過程
這里使用字面值和過程本身提供的默認值作為參數,調用例子中的過程org.neo4j.procedure.example.addNodeToIndex。
查詢:

因為例子中的過程不返回任何結果,因此結果將為空。
結果:

3.3.21.7 在復雜查詢中調用過程
這里調用數據庫內嵌的過程db.labels,計算數據庫中的總標簽數。
查詢:

因為過程調用是大的查詢的一部分,所以所有的輸出都必須顯式地命名。
結果:

3.3.21.8 調用過程并過濾結果
這里調用數據庫內嵌的過程db.labels,并計算數據庫中所有在用的包含“User”詞的標簽。
查詢:

因為過程調用是大的查詢的一部分,所以所有的輸出都必須顯式地命名。
結果:

3.3.21.9 在復雜查詢中調用過程并重命名結果
這里調用內嵌過程db.propertyKeys作為一部分,計算數據庫中包含每個屬性鍵的節點數。
查詢:

因為過程調用是大的查詢的一部分,所以,所有的輸出都必須顯式地命名。
結果:

- Word 2010中文版完全自學手冊
- Game Development with Swift
- Python金融大數據分析(第2版)
- 文本數據挖掘:基于R語言
- 云計算與大數據應用
- Live Longer with AI
- 從0到1:JavaScript 快速上手
- 數據科學工程實踐:用戶行為分析與建模、A/B實驗、SQLFlow
- Python數據分析與數據化運營
- Mastering LOB Development for Silverlight 5:A Case Study in Action
- 企業級大數據項目實戰:用戶搜索行為分析系統從0到1
- 數字化轉型方法論:落地路徑與數據中臺
- AI Crash Course
- Trino權威指南(原書第2版)
- R數據挖掘實戰