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