SQLSTATE 代码
Spark SQL 返回的大多数错误类别与一个 5 个字符的
SQLSTATE
相关联。
SQLSTATE
是一个用于表示错误条件的 SQL 标准编码,通常被
JDBC
、
ODBC
和其他客户端 API 使用。
一个
SQLSTATE
由两个部分组成:一个两个字符的类和一个三个字符的子类。
每个字符必须是数字
'0'
到
'9'
或
'A'
到
'Z'
。
虽然许多
SQLSTATE
值是由SQL标准规定的,但在行业中,其他一些值是特定于Spark的。
有关错误类别的有序列表,请参见: Error Conditions in Spark SQL
Spark SQL使用以下
SQLSTATE
类:
类
0A
: 特性不支持
| SQLSTATE | 描述和发布错误类 |
|---|---|
| 0A000 | 不支持的功能 |
| INVALID_PANDAS_UDF_PLACEMENT , STAR_GROUP_BY_POS , UNSUPPORTED_ARROWTYPE , UNSUPPORTED_DATATYPE , UNSUPPORTED_DESERIALIZER , UNSUPPORTED_FEATURE , UNSUPPORTED_GENERATOR , UNSUPPORTED_SUBQUERY_EXPRESSION_CATEGORY , UNSUPPORTED_TYPED_LITERAL |
类
21
: 基数违反
| SQL状态 | 描述和发出错误类别 |
|---|---|
| 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_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
: 仍然存在依赖的权限描述符
| SQL状态 | 描述和发出错误的类别 |
|---|---|
| 2BP01 | 依赖对象仍然存在 |
| 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 | 内存不足 |
| 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 |
.. include:: /shared/replacements.md