适用于:
Databricks SQL
Databricks Runtime 12.2 及更高版本
Azure Databricks 返回的所有错误类都与一个 5 字符 SQLSTATE 相关联。
SQLSTATE 是 JDBC、ODBC 和其他客户端 API 常用的错误条件的 SQL 标准编码。
SQLSTATE 由两个部分组成:双字符类和三字符子类。
每个字符必须是数字 '0' 到 '9',或字母 'A' 到 'Z'。
虽然许多 SQLSTATE 值是由 SQL 标准规定的,但有些值在行业中很常用且特定于 Spark 或 Azure Databricks。
如有必要,Spark 和 Azure Databricks 将 'KD' 类和 'K**' 子类范围用于自定义 SQLSTATE。
类 'XX' 用于可保证 bug 报告的内部错误。
有关错误类的已排序列表,请参阅:Azure Databricks 中的错误处理
Azure Databricks 使用以下 SQLSTATE 类:
类 07:动态 SQL 错误
| SQLSTATE | 说明和生成错误条件 |
|---|---|
07001 |
using 子句与动态参数规范不匹配 |
07501 |
在 PREPARE 或 EXECUTE 上指定的选项无效。 |
类 08:连接异常
| SQLSTATE | 说明和生成错误条件 |
|---|---|
08000 |
连接异常 |
08001 |
SQL 客户端无法建立 SQL 连接 |
08003 |
连接不存在 |
08004 |
SQL 服务器拒绝建立 SQL 连接 |
08006 |
连接失败 |
08KD1 |
服务器繁忙 |
类 0A:功能不受支持
类 0B:无效的事务启动
| SQLSTATE | 说明和生成错误条件 |
|---|---|
0B000 |
无效的事务启动 |
类 0K:处理程序未处于活动状态时辞职
| SQLSTATE | 说明和生成错误条件 |
|---|---|
0K000 |
处理程序未处于活动状态时辞职 |
类 0N:SQL/XML 映射错误
| SQLSTATE | 说明和生成错误条件 |
|---|---|
0N000 |
SQL/XML 映射错误 |
类 21:基数冲突
| SQLSTATE | 说明和生成错误条件 |
|---|---|
21000 |
基数冲突 |
21506 |
表的同一行不能是多个更新、删除或插入操作的目标。 |
21S01 |
插入值列表与列列表不匹配 |
类 22:数据异常
类 23:完整性约束冲突
| SQLSTATE | 说明和生成错误条件 |
|---|---|
23001 |
限制违规 |
23502 |
插入或更新值为 null,但列不能包含 null 值。 |
23505 |
唯一索引或唯一约束施加的约束发生冲突。 |
23512 |
无法添加检查约束,因为表包含不满足约束定义的行。 |
23K01 |
MERGE 基数冲突 |
类 25:无效的事务状态
类 28:授权规范无效
| SQLSTATE | 说明和生成错误条件 |
|---|---|
28000 |
授权规范无效 |
类 2B:依赖特权描述符仍然存在
| SQLSTATE | 说明和生成错误条件 |
|---|---|
2BP01 |
依赖对象仍然存在 |
类 2D:无效的事务终止
| SQLSTATE | 说明和生成错误条件 |
|---|---|
2D521 |
SQL COMMIT 或 ROLLBACK 在当前操作环境中无效。 |
|
|
2DKD0 |
提交后挂钩失败。 |
类 35:无效的条件编号
| SQLSTATE | 说明和生成错误条件 |
|---|---|
35000 |
无效条件编号 |
类 38:外部例程异常
| SQLSTATE | 说明和生成错误条件 |
|---|---|
38000 |
外部例程异常 |
类 39:外部例程调用异常
类 3D:无效的目录名称
| SQLSTATE | 说明和生成错误条件 |
|---|---|
3D000 |
无效的目录名称 |
类 3F:架构名称无效
| SQLSTATE | 说明和生成错误条件 |
|---|---|
3F000 |
无效的架构名称 |
类 40:事务回滚
| SQLSTATE | 说明和生成错误条件 |
|---|---|
40000 |
事务回滚 |
40001 |
序列化失败 |
类 42:语法错误或访问规则冲突
类 44:发生检查选项冲突
| SQLSTATE | 说明和生成错误条件 |
|---|---|
44000 |
发生检查选项冲突 |
类 46:Java DDL 1
| SQLSTATE | 说明和生成错误条件 |
|---|---|
46103 |
未解析的类名 |
46110 |
不支持的功能 |
46121 |
列名称无效 |
类 51:应用程序状态无效
| SQLSTATE | 说明和生成错误条件 |
|---|---|
51000 |
应用程序状态无效 |
51024 |
不能使用对象,因为它已被标记为无效。 |
类 53:资源不足
| SQLSTATE | 说明和生成错误条件 |
|---|---|
53000 |
资源不足 |
53200 |
内存不足 |
53300 |
连接过多 |
53400 |
已超出配置限制 |
类 54:超出程序限制
类 55:对象不处于先决条件状态
类 56:其他 SQL 或产品错误
类 57:操作员干预
| SQLSTATE | 说明和生成错误条件 |
|---|---|
57000 |
操作员干预 |
57012 |
非数据库资源不可用。 这不会影响后续语句的成功执行。 |
57KD0 |
查询执行超时 |
57P01 |
管理员关闭 |
57P02 |
崩溃性关闭 |
57P03 |
无法立即连接 |
类 58:系统错误
| SQLSTATE | 说明和生成错误条件 |
|---|---|
58000 |
系统错误 |
58030 |
I/O 错误 |
类 82:内存不足
| SQLSTATE | 说明和生成错误条件 |
|---|---|
82001 |
没有足够的内存用于聚合 |
82002 |
内存不足,无法增长指针数组 |
82003 |
调用spill()时出错 |
82100 |
内存不足(无法分配) |
类 F0:配置文件错误
| SQLSTATE | 说明和生成错误条件 |
|---|---|
F0000 |
配置文件错误 |
类 HV:特定于 FDW 的条件
| SQLSTATE | 说明和生成错误条件 |
|---|---|
HV000 |
特定于 FDW 的条件 |
HV091 |
无效的描述符字段标识符 |
类 HY:特定于 CLI 的条件
| SQLSTATE | 说明和生成错误条件 |
|---|---|
HY000 |
CLI特定条件 |
HY008 |
操作已取消 |
HY109 |
无效的游标位置 |
类 KD:特定于数据源的错误
类 P0:过程逻辑错误
| SQLSTATE | 说明和生成错误条件 |
|---|---|
P0001 |
引发异常 |