GQL 狀態碼參考

當你在 Microsoft Fabric 執行 GQL 查詢時,你會同時收到狀態資訊和結果。 公開的查詢 API 狀態碼與查詢引擎報告的標準 GQLSTATUS 並不總是相同。 本文說明了如何使用兩者。

查詢 API 狀態碼

查詢 API 在主要 status.code 欄位中使用一小組代碼:

API 狀態碼 Meaning
00000 成功完成且至少有一列結果。
00001 成功完成但結果未公布。 預留給未來的 DDL 和 DML 支援。
01000 警告或資訊性狀況。 檢查說明和診斷資料。
02000 目前無法從產生資料列查詢中取得結果列。 如果結果包含 nextPage,執行仍在進行中,你可以輪詢結果。
42000 語法、存取規則或其他可由使用者修正的查詢錯誤。
50000 系統或其他未分類的錯誤。

若要廣泛應用控制流程,請使用 status.code。 不要解析狀態描述,因為文字可能會有所不同。

典範查詢引擎 GQLSTATUS

查詢 API 會從查詢引擎 _graphaneGqlStatus 中保存每個狀態物件 diagnostics 記錄成員中的典型 GQLSTATUS:

"_graphaneGqlStatus": {
  "gqlType": "STRING",
  "value": "22012"
}

例如,數值溢位與除以零都是可由使用者更正的錯誤,因此兩者都使用 42000 公有 status.code。 診斷值區分了典型的 GQLSTATUS 22003 與 22012。

下表列出常見的標準 GQLSTATUS 值。 查詢引擎可以針對更具體的條件回報額外值。

GQL狀態 Meaning
00000 至少有一列的查詢成功完成。
00001 成功完成但結果未公布。
02000 產生列查詢的無資料條件。
01M11 結果不完整。 結果被截斷了。
22000 一般資料例外。 這個代碼有時會被視為更具體原發病的原因。
22003 數值超出範圍,包括字面、運算、聚合或投射中的溢位。
22012 除以零。
42000 一般語法錯誤或存取規則違規。
G2000 圖型違規。

主要狀態、 中的 additionalStatuses條目及巢 cause 狀狀態各自擁有自己的診斷記錄與典範 GQLSTATUS。