共用方式為


SQLSTATE 錯誤碼

適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 12.2 和更新版本

Azure Databricks 傳回的所有錯誤類別都會與 5 個字元 SQLSTATE相關聯。 SQLSTATE是、 JDBC和其他用戶端 API 常用ODBC之錯誤狀況的 SQL 標準編碼方式。

SQLSTATE包含兩個部分:兩個字元類別和三個字元子類別。 每個字元都必須是 或 到 '0''9''A'的數位。'Z'

雖然許多 SQLSTATE 值是由 SQL 標準規定,但其他值在產業中很常見,尤其是 Spark 或 Azure Databricks。

必要時,Spark 和 Azure Databricks 會針對自定義 SQLSTATEs 使用 'KD' 類別和 'K**' 子類別範圍。 'XX'類別用於保證錯誤報告的內部錯誤。

如需已排序的錯誤類別清單,請參閱: Azure Databricks 中的錯誤處理

Azure Databricks 使用下列 SQLSTATE 類別:

類別 07:動態 SQL 錯誤

SQLSTATE 描述和引發錯誤狀況
07001 using 子句不符合動態參數規格
07501 PREPARE 或 EXECUTE 上指定的選項無效。

類別 08:連線例外狀況

SQLSTATE 描述和引發錯誤狀況
08000 連線異常
08001 SQL-client 無法建立 SQL 連線
08003 線上不存在
08004 SQL-server 拒絕建立 SQL 連線
08006 連線失敗
08KD1 伺服器忙碌

類別 0A:不支援功能

SQLSTATE 描述和引發錯誤狀況
0A000 不支援的功能
0A001 多重伺服器交易
0AKD0 不支援跨目錄或架構作業
0AKD1 不支援安全性功能
0AKDC Delta 中不支援
0AKDD 功能需要 Delta
0AKDE 此 Delta 資料表未啟用的功能
0AKLT 串流表格不支援此功能
0AKUC Unity 目錄中不支援
0AKUD 功能需要 Unity 目錄
0AXX1 資料匯入閘道中的意外的欄位UOID
0AXX2 在資料匯入閘道中發現意外的表 UOID

類別 0B:無效的交易起始

SQLSTATE 描述和引發錯誤狀況
0B000 無效的交易起始

類別 0K:當處理程式不在作用中時辭職

SQLSTATE 描述和引發錯誤狀況
0K000 當處理程式不在作用中時辭職

類別 0N:SQL/XML 對應錯誤

SQLSTATE 描述和引發錯誤狀況
0N000 SQL/XML 對應錯誤

類別 21:基數違規

SQLSTATE 描述和引發錯誤狀況
21000 基數違反
21506 數據表的相同數據列不能是多個更新、刪除或插入作業的目標。
21S01 插入值清單不符合資料列清單

類別 22:數據例外狀況

SQLSTATE 描述和引發錯誤狀況
22000 資料例外狀況
22001 字串數據,右截斷
22002 空值,無指示器參數
22003 數值超出範圍
22004 不允許 null 值
22005 指派中的錯誤
22006 無效的間隔格式
22007 無效的日期時間格式
22008 datetime 欄位溢位
22009 無效的時區位移值
2200E 陣列目標中的 null 值
2200G 最特定的類型不符
2200P 超出範圍的間隔值
22010 無效的指標參數值
22012 除以零
22015 interval 欄位元
22018 轉換的字元值無效
2201B 無效的正則表達式
2201E 自然對數無效的自變數
22022 指示器溢位
22023 無效的參數值
22024 未結束的 C 字串
22029 UCS 字串中的非字元
22032 無效的 JSON 文字
2203G sql json 項目無法轉換成目標類型
22525 分割索引鍵值無效。
22531 內建或系統提供的例程自變數會導致錯誤。
22546 例程自變數的值無效。
22KD0 暫時性錯誤
22KD1 URI 或 PATH 無效
22KD2 身分識別宣告未設定
22KD3 無法將來源類型演進至目標類型。
22P02 無效的文字表示法
22P03 無效的二進位表示法

類別 23:完整性條件約束違規

SQLSTATE 描述和引發錯誤狀況
23001 限制違規行為
23502 插入或更新值為 Null,但數據行不能包含 Null 值。
23505 發生唯一索引或唯一條件約束所加之條件約束的違規。
23512 無法加入檢查條件約束,因為數據表包含的數據列不符合條件約束定義。
23K01 MERGE 基數違規

類別 25:無效的交易狀態

SQLSTATE 描述和引發錯誤狀況
25000 無效的交易狀態
25006 唯讀 SQL 交易

類別 28:無效的授權規格

SQLSTATE 描述和引發錯誤狀況
28000 無效的授權規格

類別 2B:相依許可權描述項仍然存在

SQLSTATE 描述和引發錯誤狀況
2BP01 相依物件仍然存在

類別 2D:無效的交易終止

SQLSTATE 描述和引發錯誤狀況
2D521 SQL COMMIT 或 ROLLBACK 在目前的作業環境中無效。
2DKD0 認可攔截失敗。

類別 35:無效的條件號碼

SQLSTATE 描述和引發錯誤狀況
35000 無效的條件號碼

類別 38:外部例程例外狀況

SQLSTATE 描述和引發錯誤狀況
38000 外部例程例外狀況

類別 39:外部例程調用例外狀況

SQLSTATE 描述和引發錯誤狀況
39000 外部例程調用例外狀況

類別 3D:無效的目錄名稱

SQLSTATE 描述和引發錯誤狀況
3D000 無效的目錄名稱

類別 3F:無效的架構名稱

SQLSTATE 描述和引發錯誤狀況
3F000 無效的架構名稱

類別 40:交易回復

SQLSTATE 描述和引發錯誤狀況
40000 交易復原
40001 序列化失敗

類別 42:語法錯誤或存取規則違規

SQLSTATE 描述和引發錯誤狀況
42000 語法錯誤或存取規則違規
42001 無效的編碼器錯誤
42501 授權標識碼沒有在識別物件上執行指定作業的許可權。
42505 發生連線授權失敗。
42517 不允許指定的授權識別碼使用受信任的上下文。
42601 字元、令牌或子句無效或遺失。
42602 偵測到名稱中無效的字元。
42604 偵測到無效的數值或字串常數。
42605 為純量函式指定的自變數數目無效。
42607 聚合函數或 CONCAT 運算子的操作數無效。
42608 VALUES 或賦值語句中使用 NULL 或 DEFAULT 是無效的。
42611 數據行、自變數、參數或全域變數定義無效。
42612 這段語句是SQL語句,但在所處的環境中不被接受。
42613 子句互斥。
42614 重複的關鍵詞或子句無效。
42616 指定的選項無效
42617 語句字串為空白或空白。
42621 檢查條件約束或產生的數據行表達式無效。
42623 無法指定 DEFAULT 子句。
42701 相同的目標會針對相同 SQL 語句中的指派指定多次。
42702 數據行參考模棱兩可,因為名稱重複。
42703 偵測到未定義的數據行或參數名稱。
42704 偵測到未定義的物件或條件約束名稱。
42710 偵測到重複的物件或條件約束名稱。
42711 物件定義或 ALTER TABLE 語句中偵測到重複的欄位名稱。
42713 在清單中偵測到重複的物件,或與現有物件相同。
42723 具有相同簽章的例程已存在於定義它的架構、模組或複合區塊中。
42734 偵測到重複的參數名稱、SQL 變數名稱、標籤或條件名稱。
4274K 叫用例程時,無效地使用具名自變數。
42802 目標值的數目與來源值的數目不同。
42803 SELECT 或 HAVING 子句中的數據行參考無效,因為它不是群組數據行;或 GROUP BY 子句中的數據行參考無效。
42804 CASE 運算式中的結果表達式不相容。
42805 ORDER BY 子句中的整數無法識別結果數據表的數據行。
42806 無法將值指派給變數,因為數據類型不相容。
42807 此物件不允許數據變更語句。
42808 INSERT 或 UPDATE 作業中所識別的欄無法更新。
42809 識別的物件不是語句所套用的物件類型。
42815 數據類型、長度、小數位數、值或CCSID無效。
42816 表達式中的 datetime 值或持續時間無效。
42818 運算子或函式的操作數不相容或可比較。
42822 ORDER BY 子句或 GROUP BY 子句中的表達式無效。
42823 從只允許一個數據行的子查詢傳回多個數據行。
42825 UNION、INTERSECT、EXCEPT 或 VALUES 的數據列沒有相容的數據行。
42826 UNION、INTERSECT、EXCEPT 或 VALUES 的數據列數目不相同。
42830 外鍵不符合父索引鍵的描述。
42831 主鍵欄位、唯一鍵欄位、ROWID 欄位、列變更時間戳欄位、開始欄位、結束欄位或應用程式期間欄位中不允許有 Null 值。
42832 系統物件上不允許此作業。
42836 命名遞歸衍生資料表的規格無效。
42837 無法改變數據行,因為其屬性與目前數據行屬性不相容。
42845 偵測到 NOT DETERMINISTIC 或 EXTERNAL ACTION 函式的無效用法。
42846 不支援從來源類型轉換成目標類型。
42852 GRANT 或 REVOKE 中指定的許可權無效或不一致。 (例如,GRANT 檢視上的 ALTER。)
42883 找不到具有相符簽章的例程。
42887 函式或數據表參考在發生時的內容中無效。
42891 已存在重複的條件約束。
42893 受其他物件相依的關係影響,該物件或約束條件無法被刪除、更改或轉移,也無法撤銷相關權限。
428B3 指定了無效的 SQLSTATE。
428C4 述詞運算元每一端的項目數目不相同。
428EK 架構限定符無效。
428FR 無法如指定變更數據行。
428FT CREATE 或 ALTER 上指定的數據分割子句無效。
428GU 數據表必須包含至少一個未隱含隱藏的數據行。
428H2 在正在使用數據類型的內容中不支援數據類型。
428HD 無法處理 語句,因為無法套用數據行遮罩,或遮罩的定義與語句衝突。
42902 FROM 子句中也會識別 INSERT、UPDATE或 DELETE 的物件(可能透過檢視隱含方式)。
42903 聚合函數或 OLAP 函數的使用無效。
42908 語句不包含必要的資料列清單。
42939 無法使用名稱,因為指定的標識碼保留供系統使用。
42996 指定的數據列不能用於資料分割索引鍵中。
429BB 不支援數據行、參數或 SQL 變數的數據類型。
429BQ 不允許指定之數據類型或屬性的改變。
42K01 數據類型未完全指定
42K02 找不到數據源
42K03 找不到檔案
42K04 重複檔案
42K05 名稱無效
42K06 選項的類型無效
42K07 不是有效的架構常值
42K08 不是常數
42K09 數據類型不符
42K0A 無效的 UNPIVOT 子句
42K0B 已封鎖舊版功能
42K0C 條件約束的模棱兩可參考
42K0D 無效的 Lambda 函式
42K0E 表達式在使用的內容中無效
42K0F 保存的物件無法參考暫存物件。
42K0G Protobuf 無效
42K0H 偵測到迴圈調用。
42K0I 找不到 SQL Config 或無效。
42K0K 無效的反向分配函式
42K0L 標籤的使用方式無效。
42K0M 無效的變數宣告。
42K0N 無效的外部類型。
42K0O ScalarFunction 不會使用自定義實作覆寫方法 'produceResult(InternalRow)'。
42K0P ScalarFunction 不會實作或覆寫方法 'produceResult(InternalRow)'。
42K0Q 無效的處理程式宣告。
42K0R 無效的條件宣告。
42K10 無效的動態選項。
42KD0 模棱兩可的名稱參考。
42KD1 唯讀會話模式不支援作業。
42KD2 SYNC 操作項的來源和目標數據表名稱必須相同。
42KD3 無法如指定加入數據行。
42KD4 作業不受支持,因為數據表架構已變更。
42KD5 無法建立檔案或路徑。
42KD6 找不到分割區資訊。
42KD7 數據表簽章不符。
42KD8 數據行位置超出範圍。
42KD9 無法推斷數據表架構。
42KDA 無法將檔案合併到數據表架構中。
42KDB URL 無效
42KDC 封存盤案參考。
42KDD 串流檢視中不支援的作業。
42KDE 串流數據集上不支援的作業。
42KDF 必要的例程參數遺漏自變數。
42KDG 目標架構與內嵌的數據不相容。
42KDH 重複選項或屬性鍵。
42KDI 無效或過期的外部認證或令牌。
42KDJ 無法套用 ABAC/RBAC 原則。
42KDK 憑證設定無效
42KDL 無效的 DBFS 掛載
42P01 未定義的表格
42P02 未定義參數
42P06 重複模式
42P07 重複表格
42P08 模稜兩可的參數
42P10 無效的數據行參考
42P16 無效的數據表定義
42P18 不確定的資料類型
42P20 視窗錯誤
42P21 對照不符
42P22 不確定的定序
42S02 找不到基底表格或視圖
42S22 找不到數據行
42S23 分割轉換表達式不在「partitionedBy」中。
42XXX 發現無支援角色。

類別 44:具有 check 選項違規

SQLSTATE 描述和引發錯誤狀況
44000 含檢查選項違規

類別 46:Java DDL 1

SQLSTATE 描述和引發錯誤狀況
46103 未解析的類別名稱
46110 不支援的功能
46121 無效的數據行名稱

類別 51:無效的應用程式狀態

SQLSTATE 描述和引發錯誤狀況
51000 無效的應用程式狀態
51024 無法使用 對象,因為它已標示為無法使用。

類別 53:資源不足

SQLSTATE 描述和引發錯誤狀況
53000 資源不足
53100 磁碟已滿
53300 連線太多
53400 超過組態限制

類別 54:超過程式限制

SQLSTATE 描述和引發錯誤狀況
54000 超過程式限制
54001 語句太長或太複雜。
54006 結果字串太長。
54011 針對表格、檢視或表格函數指定了太多欄位。
54023 太多自變數
54K00 已超過巢狀檢視的最大深度。
54KD0 超過查詢計劃中的 UDF 計數上限。
54KD1 超過會話中的物件計數上限。

類別 55:物件不在必要條件狀態

SQLSTATE 描述和引發錯誤狀況
55000 物件不處於所需的狀態
55019 對象處於作業無效的狀態。

類別 56:其他 SQL 或產品錯誤

SQLSTATE 描述和引發錯誤狀況
56000 其他 SQL 或產品錯誤
56038 此環境中不支援所要求的功能。
56098 隱含重新系結、重新編譯或重新驗證期間發生錯誤。
56K00 Spark Connect 錯誤

類別 57:運算子介入

SQLSTATE 描述和引發錯誤狀況
57000 操作員干預
57012 無法使用非資料庫資源。 這不會影響後續語句的成功執行。
57KD0 查詢執行時間超時
57P01 管理員關機
57P02 崩潰關機
57P03 現在無法連線

類別 58:系統錯誤

SQLSTATE 描述和引發錯誤狀況
58000 系統錯誤
58030 I/O 錯誤

類別 82:記憶體不足

SQLSTATE 描述和引發錯誤狀況
82100 記憶體不足(無法設定)

類別 F0:組態檔錯誤

SQLSTATE 描述和引發錯誤狀況
F0000 組態檔錯誤

類別 HV:FDW 特定條件

SQLSTATE 描述和引發錯誤狀況
HV000 外籍家政工人特定條件
HV091 無效的描述元欄位識別碼

類別 HY:CLI 特定條件

SQLSTATE 描述和引發錯誤狀況
HY000 CLI(命令列介面)特定條件
HY008 作業已取消
HY109 無效的數據指標位置

類別 KC:Unity 目錄特定錯誤

SQLSTATE 描述和引發錯誤狀況
KCUC4 未捕捉用戶端例外

類別 KD:數據源特定錯誤

SQLSTATE 描述和引發錯誤狀況
KD000 數據源特定錯誤
KD001 無法讀取檔案頁尾
KD002 意想不到的版本
KD003 數據類型的存取不正確
KD004 差異通訊協定版本錯誤
KD005 數據表至少必須包含一個非數據分割數據行
KD006 記錄路徑上找不到任何認可
KD007 數據表簽章已變更
KD008 未設定數據表簽章
KD009 數據分割不相符
KD00A 未預期的部分掃描
KD00B 無法辨識的檔案
KD00C 版本設定不連續
KD00D 所需統計數據
KD00E 數據表功能驗證失敗
KD00F 雲端要求錯誤
KD00G 無效的路徑式存取
KD010 外部數據源失敗
KD011 專用計算失敗的細微存取控制 (FGAC)
KD012 找不到資料流程圖表
KD013 路徑解析誤差
KDL01 叢集啟動錯誤

類別 P0:程式性邏輯錯誤

SQLSTATE 描述和引發錯誤狀況
P0001 引發異常