SQLSTATE 碼
Spark SQL 回傳的大部分錯誤類別都與 5 個字元的 SQLSTATE
相關。 SQLSTATE
是 SQL 標準的錯誤狀況編碼,常由 JDBC
、ODBC
和其他用戶端 API 使用。
一個 SQLSTATE
包含兩個部分:一個兩個字元的類別,和一個三個字元的子類別。每個字元都必須是數字 '0'
到 '9'
或 'A'
到 'Z'
。
雖然許多 SQLSTATE
值是由 SQL 標準規定的,但其他值在業界很常見,特別是 Spark。
有關錯誤類別的有序清單,請參閱:Spark SQL 中的錯誤狀況
Spark SQL 使用以下 SQLSTATE
類別
類別 0A
:不支援的功能
類別 21
:基數違規
SQLSTATE | 說明和發出錯誤類別 |
---|---|
21000 | 基數違規 |
SCALAR_SUBQUERY_TOO_MANY_ROWS |
類別 22
:資料例外
SQLSTATE | 說明和發出錯誤類別 |
---|---|
22003 | 數值超出範圍 |
ARITHMETIC_OVERFLOW,CAST_OVERFLOW,CAST_OVERFLOW_IN_TABLE_INSERT,DECIMAL_PRECISION_EXCEEDS_MAX_PRECISION,INVALID_INDEX_OF_ZERO,INCORRECT_END_OFFSET,INCORRECT_RAMP_UP_RATE,INVALID_ARRAY_INDEX,INVALID_ARRAY_INDEX_IN_ELEMENT_AT,NUMERIC_OUT_OF_SUPPORTED_RANGE,NUMERIC_VALUE_OUT_OF_RANGE | |
22007 | 無效的日期時間格式 |
CANNOT_PARSE_TIMESTAMP | |
22008 | 日期時間欄位溢位 |
DATETIME_OVERFLOW | |
2200E | 陣列目標中的 Null 值 |
NULL_MAP_KEY | |
22012 | 除以零 |
DIVIDE_BY_ZERO,INTERVAL_DIVIDED_BY_ZERO | |
22015 | 區間欄位溢位 |
INTERVAL_ARITHMETIC_OVERFLOW | |
22018 | 無效的字元值,無法轉換 |
CANNOT_PARSE_DECIMAL,CAST_INVALID_INPUT,CONVERSION_INVALID_INPUT | |
22023 | 無效的參數值 |
INVALID_FRACTION_OF_SECOND,INVALID_PARAMETER_VALUE,SECOND_FUNCTION_ARGUMENT_NOT_INTEGER | |
22032 | 無效的 JSON 文字 |
INVALID_JSON_ROOT_FIELD,INVALID_JSON_SCHEMA_MAP_TYPE | |
2203G | sql_json_item_cannot_be_cast_to_target_type |
CANNOT_PARSE_JSON_FIELD | |
22546 | 常式引數的值無效。 |
CANNOT_DECODE_URL |
類別 23
:完整性約束違規
SQLSTATE | 說明和發出錯誤類別 |
---|---|
23505 | 違反唯一索引或唯一約束所施加的約束。 |
DUPLICATED_MAP_KEY,DUPLICATE_KEY |
類別 2B
:依賴的權限描述符仍然存在
SQLSTATE | 說明和發出錯誤類別 |
---|---|
2BP01 | dependent_objects_still_exist |
SCHEMA_NOT_EMPTY |
類別 38
:外部常式例外
SQLSTATE | 說明和發出錯誤類別 |
---|---|
38000 | 外部常式例外 |
FAILED_FUNCTION_CALL |
類別 39
:外部常式呼叫例外
SQLSTATE | 說明和發出錯誤類別 |
---|---|
39000 | 外部常式呼叫例外 |
FAILED_EXECUTE_UDF |
類別 42
:語法錯誤或存取規則違規
類別 46
:java ddl 1
SQLSTATE | 說明和發出錯誤類別 |
---|---|
46110 | 不支援的功能 |
CANNOT_MODIFY_CONFIG | |
46121 | 無效的欄位名稱 |
INVALID_COLUMN_NAME_AS_PATH |
類別 53
:資源不足
SQLSTATE | 說明和發出錯誤類別 |
---|---|
53200 | out_of_memory |
UNABLE_TO_ACQUIRE_MEMORY |
類別 54
:程式限制已超過
SQLSTATE | 說明和發出錯誤類別 |
---|---|
54000 | 程式限制已超過 |
GROUPING_SIZE_LIMIT_EXCEEDED、TOO_MANY_ARRAY_ELEMENTS |
類別 HY
:CLI 特定條件
SQLSTATE | 說明和發出錯誤類別 |
---|---|
HY008 | 操作已取消 |
OPERATION_CANCELED |
類別 XX
:內部錯誤
SQLSTATE | 說明和發出錯誤類別 |
---|---|
XX000 | 內部錯誤 |
INTERNAL_ERROR |