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_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 |
.. include:: /shared/replacements.md