當你在 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。